You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5中QLineEdit绑定的QCompleter自动补全不显示选项问题

代码错误原因
  • 错误1:QMainWindow不支持直接调用setLayout()方法设置布局,你代码中多余创建了未使用的self.mwidget对象,布局相关代码完全无效。
  • 错误2:每次下拉选项切换触发回调函数时,都会重新生成一个新的QLineEdit输入框叠在旧输入框上方,你实际操作的始终是最开始生成的无补全功能的旧输入框,带补全的新输入框被遮挡无法触发。同时QLineEdit被定义为局部变量,存在被垃圾回收导致功能失效的风险。
  • 错误3:自动补全配置逻辑错误,无需每次切换选项都新建输入框,只需提前创建唯一的输入框作为实例属性,切换选项时动态修改其补全配置即可。
修正后可运行代码
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys


class KnowledgeBaseGui(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setGeometry(500, 400, 650, 650)
        self.setWindowTitle("pyqt5")
        self.nand_cmd_menu_current_text = None
        # 提前创建全局唯一的输入框,存为实例属性
        self.cmd_lineEdit = QLineEdit(self)
        self.cmd_lineEdit.setGeometry(200, 175, 150, 35)
        # 预设names列表
        self.names = ["apple", "alpha", "beta", "blackberry", "charlie", "delta", "chilton", "dawn"]

    def cmd_button(self):
        self.combo_cmd = QComboBox(self)
        self.combo_cmd.setGeometry(80, 175, 115, 35)
        self.combo_cmd.setFont(QFont('Times', 11))
        self.combo_cmd.setStyleSheet("background-color: rgb(166,180,242);border: 2px solid rgb(20,20,20)")
        self.combo_cmd.addItems(["CMDs", "B4.5", "B5", "B6"])
        self.combo_cmd.currentTextChanged.connect(self.design_manual_select)

    def design_manual_select(self, val):
        if val == "B4.5":
            print(val)
            completer = QCompleter(self.names)
            self.cmd_lineEdit.setCompleter(completer)
        else:
            # 非B4.5选项移除补全
            self.cmd_lineEdit.setCompleter(None)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyleSheet("QMainWindow{"
                      "background-image:url(abc.jpg); background-color: rgb(130,130,125);"
                      "border: 1px solid rgb(1,1,1)}")
    CallKnowledgeBaseGui = KnowledgeBaseGui()
    CallKnowledgeBaseGui.cmd_button()
    CallKnowledgeBaseGui.show()
    sys.exit(app.exec())

内容的提问来源于stack exchange,提问作者rhapsody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:12:03