如何在pyqt4 python中从QcomboBox中删除重复项

如何在pyqt4 python中从QcomboBox中删除重复项,python,duplicates,pyqt4,qcombobox,Python,Duplicates,Pyqt4,Qcombobox,如何从pyqt4中的组合框中删除重复项。我尝试了以下代码,但它并没有从comboBox中删除重复的代码 代码: 从: 请注意,始终可以通过编程方式将重复项插入组合框 您需要手动避免重复。您可以对所有项目进行设置,然后使用附加项传递其项目,您似乎还没有阅读: 此属性保存用户是否可以在中输入重复的项目 组合框 请注意,始终可以通过编程方式插入副本 将项目添加到组合框中 默认情况下,此属性为false(不允许重复) 亮点是我的 因此,一种可能的解决方案是覆盖addItem方法来进行过滤: 从PyQt

如何从pyqt4中的组合框中删除重复项。我尝试了以下代码,但它并没有从comboBox中删除重复的代码

代码:

从:

请注意,始终可以通过编程方式将重复项插入组合框


您需要手动避免重复。您可以对所有项目进行
设置
,然后使用
附加项传递其项目

,您似乎还没有阅读:

此属性保存用户是否可以在中输入重复的项目 组合框

请注意,始终可以通过编程方式插入副本 将项目添加到组合框中

默认情况下,此属性为false(不允许重复)


亮点是我的

因此,一种可能的解决方案是覆盖addItem方法来进行过滤:

从PyQt4导入QtCore,QtGui
导入系统
类组合框(QtGui.QComboBox):
def附加项(自身,项目):
如果项目不在self.get\u set\u items()中:
超级(组合框,自我)。附加项(项目)
def附加项(自身、项目):
项目=列表(self.get_set_items()| set(项目))
超级(组合框,自我)。附加项(项目)
def get_set_项目(自身):
返回集([self.itemText(i)表示范围内的i(self.count())])
如果名称=“\uuuuu main\uuuuuuuu”:
导入系统
app=QtGui.QApplication(sys.argv)
w=QtGui.QWidget()
w、 调整大小(500388)
组合框=组合框(w)
集合几何(QtCore.QRect(150,50,251,31))
组合添加项([“aaa”、“bb”、“aaa”])
组合添加项(“aa”)
组合添加项(“bb”)
组合添加项(“cc”)
组合添加项(“aa”)
w、 setWindowTitle(“PyQt”)
w、 show()
sys.exit(app.exec_())
from PyQt4 import QtCore, QtGui
import sys
app = QtGui.QApplication(sys.argv)
w = QtGui.QWidget()
w.resize(500, 388)

combo=QtGui.QComboBox(w)
combo.setGeometry(QtCore.QRect(150, 50, 251, 31))
combo.addItem("aa")
combo.addItem("bb")
combo.addItem("cc")
combo.addItem("aa")
combo.setDuplicatesEnabled(False)

w.setWindowTitle("PyQt")
w.show()
sys.exit(app.exec_())