2 回答
TA贡献1780条经验 获得超1个赞
看来您还没有阅读文档:
此属性保存用户是否可以在组合框中输入重复项。
请注意,始终可以以编程方式将重复项插入组合框中。
默认情况下,此属性为 false(不允许重复)。
亮点是我的
所以一个可能的解决方案是覆盖 addItem 方法来进行过滤:
from PyQt4 import QtCore, QtGui
import sys
class ComboBox(QtGui.QComboBox):
def addItem(self, item):
if item not in self.get_set_items():
super(ComboBox, self).addItem(item)
def addItems(self, items):
items = list(self.get_set_items() | set(items))
super(ComboBox, self).addItems(items)
def get_set_items(self):
return set([self.itemText(i) for i in range(self.count())])
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
w.resize(500, 388)
combo = ComboBox(w)
combo.setGeometry(QtCore.QRect(150, 50, 251, 31))
combo.addItems(["aaa", "bb", "aaa"])
combo.addItem("aa")
combo.addItem("bb")
combo.addItem("cc")
combo.addItem("aa")
w.setWindowTitle("PyQt")
w.show()
sys.exit(app.exec_())
TA贡献1818条经验 获得超11个赞
添加回答
举报