PyQt Combobox 向项目添加功能

2 python pyqt

如何将功能添加到特定选项。我有一个带有服务器选项的组合框

server 1
server 2
server 3
Run Code Online (Sandbox Code Playgroud)

我还有一个按钮,我想做的是当用户选择其中一台服务器时,例如,如果他选择服务器1,当用户按下按钮时,该按钮会向mysql数据库发出信号以下载数据。我知道如何处理信号,但我不明白的是如何将组合框的选项连接到按钮,以便我可以下载正确的服务器数据。

组合框代码:

import sys
from PyQt4 import QtGui, QtCore

class server(QtGui.QWidget):
    """
    An basic example combo box application
    """

    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setWindowTitle('server')
        # Set the window dimensions
        self.resize(250,50)

        self.vbox = QtGui.QVBoxLayout()
        self.setLayout(self.vbox)

        self.combo = QtGui.QComboBox()
        self.vbox.addWidget(self.combo)


        self.combo.addItem('server1')
        self.combo.addItem('server2')
        self.combo.addItem('server3')



if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    gui = server()
    gui.show()
    app.exec_()
Run Code Online (Sandbox Code Playgroud)

war*_*iuc 5

首先,有新样式的信号/插槽连接。代替

self.connect(self.combo, QtCore.SIGNAL('activated(QString)'), self.combo_chosen)
Run Code Online (Sandbox Code Playgroud)

你可以做

self.combo.activated.connect(self.combo_chosen)
Run Code Online (Sandbox Code Playgroud)

但是您不需要为您的任务连接到组合信号。

我还有一个按钮,我想做的是当用户选择其中一台服务器时,例如,如果他选择服务器1,当用户按下按钮时,该按钮会向mysql数据库发出信号以下载数据。

连接到您的按钮clicked信号。在信号处理程序中检查您的组合选择选项并采取相应的行动。