1 - The QLineEdit class

The PyQt5 library is equipped with the QLineEdit class which allows you to create input fields with a single line. QLineEdit comes with a useful collection of editing functions, including undo and redo, cut and paste, and drag and drop. This is the basic PyQt5 widget to receive keyboard input, the input can also be text, numbers or even a symbol.

2 - Associated methods with the QLineEdit class

  1. setAlignment(): aligns the text: Qt.AlignLeft, Qt.AlignRight, Qt.AlignCenter, Qt.AlignJustify   
  2. clear(): erases the contents 
  3. setEchoMode(): controls the text appearance: QLineEdit.Normal, QLineEdit.NoEcho, QLineEdit.Password, QLineEdit.PasswordEchoOnEdit 
  4. setMaxLength(): sets the maximum number of characters for input 
  5. setReadOnly(): makes the text box non-editable 
  6. setText(): assign a text to the QLineEdit 
  7. text(): retrieves text in the the QLineEdit field 
  8. setValidator(): sets the validation rules. Available validators are: QIntValidator − Restricts input to integer, QDoubleValidator − Fraction part of number limited to specified decimals, QRegexpValidator − Checks input against a Regex expression 
  9. setInputMask(): applies mask of combination of characters for input  
  10. setFont(): displays the contents QFont object

Associated signals

  1. cursorPositionChanged(): whenever the cursor moves
  2. editingFinished(): when you press 'Enter' or the field loses focus 
  3. returnPressed(): when you press 'Enter' 
  4. selectionChanged(): whenever the selected text changes 
  5. textChanged(): as text in the box changes either by input or by programmatic means 
  6. textEdited(): whenever the text is edited

To create a QLineEdit control, just import and instantiate the QLineEdit class:

import sys
from PyQt5.QtWidgets import QApplication , QWidget, QLineEdit

app = QApplication(sys.argv)

win = QWidget()
win.setWindowTitle("Example of QLineEdit")
win.setGeometry(100 , 100 , 400 , 300)

# create a QLineEdit
qLine = QLineEdit(win)
qLine.setGeometry(50, 100 , 200 , 50)

win.show()
sys.exit(app.exec_())

2 - Apply a style to a QLineEdit control

QLineEdit has the setStyleSheet() method which allows you to associate a Qt Style Sheet (QSS) style

Example

qLine.setStyleSheet("background: black; color: yellow; font-size:28px;")

 

3 - QLineEdit according to the object approach

import sys
from PyQt5.QtWidgets import QApplication , QWidget, QLineEdit

class MyWindow(QWidget):

def __init__(self , win):
super().__init__()
self.win = win

def build(self):
self.win.setWindowTitle("QLineEdit Exemple")
self.win.setGeometry(100 , 100 , 500 , 300)

# create a QLineEdit
self.qLine = QLineEdit(self.win)
self.qLine.setGeometry(50 , 50 , 250 , 35)

if __name__ == '__main__':
app = QApplication(sys.argv)
root = QWidget()

mywin = MyWindow(root)
mywin.build()

root.show()
sys.exit(app.exec_())
 

4 - Bind an action to the QLineEdit

Now we can bind an action to the QLineEdit that displays the text entered in the QLinEdit field. This action can be associated with the textChanged() method:

import sys
from PyQt5.QtWidgets import QApplication, QLabel , QWidget, QLineEdit

class MyWindow(QWidget):

def __init__(self , win):
super().__init__()
self.win = win

def action(self):
text = self.qLine.text()
self.qLabel.setText(text)

def build(self):
self.win.setWindowTitle("QLineEdit Exemple")
self.win.setGeometry(100 , 100 , 400 , 200)

# create a QLineEdit
self.qLine = QLineEdit(self.win)
self.qLine.setGeometry(50 , 50 , 250 , 35)

# add action to the QLineEdit
self.qLine.textChanged.connect(self.action)

# creat a QLabel that display the result
self.qLabel = QLabel('display result here !' , self.win)
self.qLabel.setGeometry(50 , 100 , 250 , 35)


if __name__ == '__main__':
app = QApplication(sys.argv)
root = QWidget()

mywin = MyWindow(root)
mywin.build()

root.show()
sys.exit(app.exec_())

Younes Derfoufi
my-courses.net

Leave a Reply