pyqt4中的组合框中的下拉事件/回调

时间:2011-08-11 06:34:00

标签: python combobox pyqt4

pyqt4组合框中有下拉回调或事件吗?就像self.connect(self.ui.combobox,SIGNAL("activated(int)"),self.refresh

一样

2 个答案:

答案 0 :(得分:2)

QCombobox使用QAbstractItemView(默认情况下为QListView)来显示下拉项(可通过view()属性访问)。 我不知道为此目的发出任何信号。

但是你可以设置一个eventFilter,它可以在组合框的视图上使用installEventFilter并实现eventFilter方法:

from PyQt4 import QtCore, QtGui
class ShowEventFilter(QtCore.QObject):
    def eventFilter(self, filteredObj, event):
        if event.type() == QtCore.QEvent.Show:
            print "Popup Showed !"
            # do whatever you want
        return QtCore.QObject.eventFilter(self, filteredObj, event)

if __name__ == '__main__':
    app = QtGui.QApplication([])
    cb = QtGui.QComboBox()
    cb.addItems(['a', 'b', 'c'])

    eventFilter = ShowEventFilter()
    cb.view().installEventFilter(eventFilter)
    cb.show()
    app.exec_()

答案 1 :(得分:0)

也许你可以试试

customContextMenuRequested(const QPoint &pos) 

信号(继承自QWidget)?