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

QComboBox mouse press event when combo box is initially pressed PyQt4

我正在尝试为 QComboBox 安排鼠标按下事件。我想知道是否有任何方法可以在 initial QComboBox 单击上安排鼠标按下事件——将项目列表调出 select 的单击。一旦用户 select 是下拉菜单中的一项,我已经使用 currentIndexChanged(int) 信号调用一个函数,但是我正在尝试用新条目刷新我的 QComboBox 列表用户点击它。 (我觉得这种方法可能会被误导,但我想那是另一个问题。)

我试过用 def mousePressEvent(self, e) 制作一个 QComboBox subclass,但它似乎没有做任何事情。我还在 QtGui.QWidget class 中尝试了 def mousePressEvent(self, e) 来保存我的 QComboClass 对象,但毫不奇怪,它只捕获 QtGui.QWidget.

的鼠标按下

您目前的做法误入歧途。即使你可以让它工作,只要通过键盘打开列表,它就会失败。

正确的做法是覆盖showPopup:

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