geekdoc-python-zh/docs/pythonbasics/114.md

1.5 KiB

PyQt 自动补全

原文: https://pythonbasics.org/pyqt-auto-complete/

PyQt 支持自动补全。 如果输入文本框(QLineEdit),它可以提出建议。 从列表中推荐这些建议。

本示例将自动补全功能添加到QLineEdit文本框中。

auto complete QLineEdit

图片:在 PyQt 窗口中显示的标签。

自动补全

QLineEdit自动补全示例

首先创建选项(名称)列表,然后创建completer = QCompleter(names)

使用行self.lineedit = QLineEdit()创建行编辑。 否则,行编辑将正常进行。

这些建议已添加到self.lineedit.setCompleter(completer)中。

如果忘记了最后一行,则QCompleterQLineEdit未连接,这意味着没有自动补全

from PyQt5.QtWidgets import *
import sys

class Window(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        layout = QGridLayout()
        self.setLayout(layout)

        # auto complete options                                                 
        names = ["Apple", "Alps", "Berry", "Cherry" ]
        completer = QCompleter(names)

        # create line edit and add auto complete                                
        self.lineedit = QLineEdit()
        self.lineedit.setCompleter(completer)
        layout.addWidget(self.lineedit, 0, 0)

app = QApplication(sys.argv)
screen = Window()
screen.show()
sys.exit(app.exec_())