-2
我是初學者到PyQt。 PyQt4中:如何通過點擊按鈕如何通過點擊PyQt4(python2.7)中的按鈕來改變QComboBox的值?
我想
點擊按鈕之前,要更改QComboBox當前值:
組合框的當前值是「C」,點擊按鈕之前,(這樣的形象)
點擊按鈕後:
組合框的當前值必須成爲「Java」的點擊按鈕後(這樣的形象)
我怎樣才能得到呢? 請用代碼告訴我。
謝謝
我是初學者到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_()