Pyqt5 组合框允许搜索但阻止添加

Posted

技术标签:

【中文标题】Pyqt5 组合框允许搜索但阻止添加【英文标题】:Pyqt5 combobox allow search but prevent add 【发布时间】:2020-05-02 04:05:20 【问题描述】:

如何使QComboBox 允许搜索但阻止用户添加新项目 我的代码:

self.products = QtWidgets.QComboBox(self.conts[self.ind])
self.products.setEditable(True)
self.products.resize(190, 30)
self.products.move(400, 20)
self.products.setStyleSheet('background:#2c3e50')
self.products.show()

self.products.setEditable(True) 不是我需要的,因为用户可以输入任何内容

如何防止用户添加新项目,只搜索当前设置的项目

【问题讨论】:

【参考方案1】:

正如您指出的,您必须启用editable 属性并将insertPolicy 属性设置为QComboBox::NoInsert

import sys

from PyQt5 import QtWidgets


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = QtWidgets.QComboBox()
    w.setEditable(True)
    w.setInsertPolicy(QtWidgets.QComboBox.NoInsert)
    w.addItems(["One", "Two", "Three", "Four", "Five"])
    w.show()
    sys.exit(app.exec_())

【讨论】:

以上是关于Pyqt5 组合框允许搜索但阻止添加的主要内容,如果未能解决你的问题,请参考以下文章

如何动态更改组合框显示成员

PyQt5 可检查组合框:显示已检查项目列表

Windows 窗体中的刷新组合框

从 Pyqt5 中的可检查组合框中获取已检查的文本

PyQt5:根据选择的元素与数据框中的另一个元素匹配设置自定义组合框文本的字体颜色

如何将组合框中的选定元素保存为 PyQt5 中的变量?