如何通过单击PyQt4(python2.7)中的按钮来更改QComboBox值?

时间:2017-05-05 13:15:50

标签: python button combobox pyqt pyqt4

我是PyQt的初学者。 在pyqt4中:如何通过单击按钮

来更改QComboBox当前值

我想要

点击按钮之前:

组合框当前值为" C",点击按钮之前(如此图片)

点击按钮后:

组合框当前值必须变成" Java"点击按钮后(如此图片)

我怎么能得到这个? 请告诉我代码。

谢谢

1 个答案:

答案 0 :(得分:0)

Qt拥有所谓的信号'和'插槽'让小部件相互通信。只要点击,QPushButton就会自动发出信号。在您的代码中,您可以将此信号连接到任何其他窗口小部件的方法(此方法随后成为'插槽')。结果是每次发送信号时都会执行slot方法。

以下是代码片段,其中在QPushButton clicked信号和QComboBox setCurrentIndex方法之间建立连接。它应该给出你正在寻找的行为:

from PyQt4 import QtGui


class Window(QtGui.QWidget):
    def __init__(self):
        super(Window, self).__init__()

        self.init_widgets()
        self.init_connections()


    def init_widgets(self):
        self.button = QtGui.QPushButton(parent=self)
        self.button.setText('Select Java')

        self.combo_box = QtGui.QComboBox(parent=self)
        self.combo_box.addItems(['C', 'Java'])

        layout = QtGui.QHBoxLayout()
        layout.addWidget(self.button, 0)
        layout.addWidget(self.combo_box, 1)
        self.setLayout(layout)


    def init_connections(self):
        self.button.clicked.connect(lambda: self.combo_box.setCurrentIndex(1))


qt_application = QtGui.QApplication([])
window = Window()
window.show()
qt_application.exec_()