Заполните QComboBox в раскрывающемся списке или клике пользователя

Привет, я пытаюсь использовать QComboBox для заполнения списка баз данных, которые можно найти на сервере.

Есть ли какой-либо сигнал в QComboBox, который можно использовать для подключения к методу, который может заполнять QComboBox, когда пользователь щелкает по нему.

Я пытаюсь создать диалоговое окно, которое используется так, как пользователи обычно создают соединение с базой данных в среде Windows, позволяя им указать имя сервера, имя пользователя и пароль, а затем, когда они нажимают на поле со списком «Выбрать базу данных», появляется список баз данных извлекается с сервера, и они могут выбрать одну из списка.

Будет ли повторная реализация mousePressEvent в пользовательском классе, унаследованном от QComboBox, тем, что требуется для получения этой функциональности?


person Twist    schedule 24.02.2014    source источник


Ответы (1)


Вы можете использовать фильтр событий, чтобы поймать событие mousepress.

Минимальный пример:

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()


        self.combo = QtGui.QComboBox(self)
        self.combo.installEventFilter(self)
        self.show()

    def eventFilter(self,target,event):
        if target == self.combo and event.type() == QtCore.QEvent.MouseButtonPress:
            print "Button press"
            self.fillComboBox()

        return False

    def fillComboBox(self):
        self.combo.addItem('foo')
        self.combo.addItem('bar')
person M4rtini    schedule 24.02.2014