Виджет PyQt QLineEdit в Python — создание и использование

Краткое описание: в этом уроке вы узнаете, как использовать 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())

Выход:

Простой пример создания виджета PyQt QLineEdit

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())

Выход:

Создание записи с функцией автозаполнения

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *