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_()