最初按下组合框时,QComboBox鼠标按下事件PyQt4

时间:2015-04-22 17:43:30

标签: python pyqt pyqt4 qcombobox

我正在尝试为QComboBox安排鼠标按下事件。我想知道是否有任何方法可以在初始 QComboBox点击上安排鼠标按下事件 - 点击该按钮会显示要选择的项目列表。一旦用户从下拉菜单中选择了其中一个项目,我就已经使用currentIndexChanged(int)信号调用了一个函数,但是我尝试使用新条目刷新我的QComboBox列表点击它。 (我觉得这种做法可能会被误导,但我想这是另一个问题。)

我尝试使用def mousePressEvent(self, e)创建一个QComboBox子类,但它似乎没有做任何事情。我还在QtGui.QWidget类中尝试def mousePressEvent(self, e)来保存我的QComboClass对象,但不出所料,它只捕获了QtGui.QWidget的鼠标按下。

1 个答案:

答案 0 :(得分:3)

您当前的方法误导。即使你可以使它工作,只要通过键盘打开列表,它就会失败。

执行此操作的正确方法是覆盖showPopup

class ComboBox(QtGui.QComboBox):
    def showPopup(self):
        self.insertItem(0, 'Added')
        super(ComboBox, self).showPopup()