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

问题描述:

我是初学者到PyQt。 PyQt4中:如何通过点击按钮如何通过点击PyQt4(python2.7)中的按钮来改变QComboBox的值?

我想

点击按钮之前,要更改QComboBox当前值:

组合框的当前值是“C”,点击按钮之前,(这样的形象)

点击按钮后:

组合框的当前值必须成为“Java”的点击按钮后(这样的形象)

我怎样才能得到呢? 请用代码告诉我。

谢谢

Qt拥有被称为“信号”和“槽”,让小部件相互通信。 QPushButton在点击时会自动发出一个信号。在你的代码中,你可以将这个信号连接到任何其他小部件的方法(这种方法然后成为'插槽')。结果是每次发送信号时都会执行插槽方法。

下面是在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_()