您好我正在尝试使用QComboBox填充可在服务器上找到的数据库列表。
QComboBox上是否有任何信号可用于将其连接到可在用户点击时填充QComboBox的方法。
我正在尝试创建一个Dialog,用于用户通常在Windows环境中创建数据库连接的方式,允许他们指定服务器名称,用户名和密码,然后当他们单击“选择数据库”时组合框从服务器检索数据库列表,他们可以从列表中选择一个。
在从QComboBox继承的自定义类中重新实现mousePressEvent是否需要获得此功能?
答案 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')