2017-05-05 74 views
-2

我是初學者到PyQt。 PyQt4中:如何通過點擊按鈕如何通過點擊PyQt4(python2.7)中的按鈕來改變QComboBox的值?

我想

點擊按鈕之前,要更改QComboBox當前值:

組合框的當前值是「C」,點擊按鈕之前,(這樣的形象)

點擊按鈕後:

組合框的當前值必須成爲「Java」的點擊按鈕後(這樣的形象)

我怎樣才能得到呢? 請用代碼告訴我。

謝謝

回答

0

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_() 
相關問題