在下拉或用户单击时填充QComboBox

时间:2014-02-24 20:04:49

标签: python pyqt5

您好我正在尝试使用QComboBox填充可在服务器上找到的数据库列表。

QComboBox上是否有任何信号可用于将其连接到可在用户点击时填充QComboBox的方法。

我正在尝试创建一个Dialog,用于用户通常在Windows环境中创建数据库连接的方式,允许他们指定服务器名称,用户名和密码,然后当他们单击“选择数据库”时组合框从服务器检索数据库列表,他们可以从列表中选择一个。

在从QComboBox继承的自定义类中重新实现mousePressEvent是否需要获得此功能?

1 个答案:

答案 0 :(得分:1)

您可以使用eventfilter来捕获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')