2017-05-05 9 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_() 
関連する問題