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

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

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

PyQt 自动补全 - 图1

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

自动补全

QLineEdit自动补全示例

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

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

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

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

  1. from PyQt5.QtWidgets import *
  2. import sys
  3. class Window(QWidget):
  4. def __init__(self):
  5. QWidget.__init__(self)
  6. layout = QGridLayout()
  7. self.setLayout(layout)
  8. # auto complete options
  9. names = ["Apple", "Alps", "Berry", "Cherry" ]
  10. completer = QCompleter(names)
  11. # create line edit and add auto complete
  12. self.lineedit = QLineEdit()
  13. self.lineedit.setCompleter(completer)
  14. layout.addWidget(self.lineedit, 0, 0)
  15. app = QApplication(sys.argv)
  16. screen = Window()
  17. screen.show()
  18. sys.exit(app.exec_())