Виджет PyQt QLineEdit в Python — создание и использование
Краткое описание: в этом уроке вы узнаете, как использовать PyQt QLineEdit для создания виджета ввода однострочного текста в Python.
- Создание виджета PyQt QLineEdit
- Примеры виджета PyQt QLineEdit
- 1) Простой пример PyQt QLineEdit
- 2) Использование PyQt QLineEdit для создания записи пароля
- 3) PyQt QLineEdit с функцией автозаполнения
Создание виджета 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())
Выход: