Краткое описание: в этом уроке вы узнаете, как использовать PyQt QLineEdit для создания виджета ввода однострочного текста в Python.
Создание виджета PyQt QLineEdit
PyQt QLineEdit позволяет вам создать виджет для ввода текста в одну строку. Обычно вы будете использовать QLineEdit в форме ввода данных. На практике виджет QLineEdit часто используется с виджетом QLabel.
Чтобы создать виджет QLineEdit, выполните следующие действия.
Сначала импортируем QLineEdit из модуля PyQt6.QtWidgets:
from PyQt6.QtWidgets import QLineEdit
Во-вторых, создайте новый объект QLineEdit, который используется:
- Без аргументов.
- Только с родительским виджетом.
- Или со строковым значением по умолчанию в качестве первого аргумента.
Например:
line_edit = QLineEdit('Default Value', self)
Также вы можете использовать следующие дополнительные свойства:
| Свойство | Тип | Описание |
|---|---|---|
| text | string | Содержание строки редактирования |
| readOnly | Boolean | True или False. Если True, то редактирование строки невозможно |
| clearButtonEnabled | Boolean | True для добавления кнопки очистки |
| placeholderText | string | Текст, который появляется, когда строка редактирования пуста |
| maxLength | integer | Укажите максимальное количество символов, которое можно ввести |
| echoMode | QLineEdit.EchoMode | Измените способ отображения текста, например пароля. |
Примеры виджета PyQt QLineEdit
Давайте рассмотрим несколько примеров использования виджета QLineEdit.
1) Простой пример PyQt QLineEdit
Следующая программа показывает, как создать виджет QLineEdit:
import sys
from PyQt6.QtWidgets import(
QApplication,
QWidget,
QLineEdit,
QVBoxLayout
)
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QLineEdit Widget')
self.setGeometry(100, 100, 320, 210)
search_box = QLineEdit(
self,
placeholderText="Enter a keyword to search...",
clearButtonEnabled=True
)
# place the widget on the window
layout = QVBoxLayout()
layout.addWidget(search_box)
self.setLayout(layout)
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Выход:

2) Использование PyQt QLineEdit для создания записи пароля
Следующая программа создает новый виджет QLineEdit в качестве записи пароля:
import sys
from PyQt6.QtWidgets import(
QApplication,
QWidget,
QLineEdit,
QVBoxLayout
)
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QLineEdit Widget')
self.setGeometry(100, 100, 320, 210)
password = QLineEdit(self, echoMode=QLineEdit.EchoMode.Password)
# place the widget on the window
layout = QVBoxLayout()
layout.addWidget(password)
self.setLayout(layout)
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Чтобы сделать виджет QLineEdit записью пароля, установите echoMode на QLineEdit.EchoMode.Password:
password = QLineEdit(self, echoMode=QLineEdit.EchoMode.Password)
Выход:

3) PyQt QLineEdit с функцией автозаполнения
Чтобы создать запись с функцией автозаполнения, выполните следующие действия:
- Сначала импортируйте QCompleter из модуля PyQt6.QtWidgets.
- Во-вторых, создайте виджет QCompleter со списком строк, используемых для функции автозаполнения:
completer = QCompleter(word_list)
- В-третьих, создайте QLineEdit и вызовите его метод setCompleter() с объектом completer:
line_edit = QLineEdit(self) line_edit.setCompleter(completer)
Например, следующая программа показывает виджет QLineEdit с функцией автозаполнения:
import sys
from PyQt6.QtWidgets import(
QApplication,
QWidget,
QLineEdit,
QVBoxLayout,
QCompleter
)
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QLineEdit Widget')
self.setGeometry(100, 100, 320, 210)
common_fruits = QCompleter([
'Apple',
'Apricot',
'Banana',
'Carambola',
'Olive',
'Oranges',
'Papaya',
'Peach',
'Pineapple',
'Pomegranate',
'Rambutan',
'Ramphal',
'Raspberries',
'Rose apple',
'Starfruit',
'Strawberries',
'Water apple',
])
fruit = QLineEdit(self)
fruit.setCompleter(common_fruits)
# place the widget on the window
layout = QVBoxLayout()
layout.addWidget(fruit)
self.setLayout(layout)
# show the window
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Выход:

