выпадающее событие / обратный вызов в комбинированном окне в pyqt4 - PullRequest
2 голосов
/ 11 августа 2011

есть ли обратный вызов или событие для выпадающего списка в поле со списком pyqt4? Так же, как self.connect(self.ui.combobox,SIGNAL("activated(int)"),self.refresh

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

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_()
0 голосов
/ 11 августа 2011

Может быть, вы могли бы попробовать сигнал

customContextMenuRequested(const QPoint &pos) 

(унаследованный от QWidget)?

...