使用方法也很簡單, 比較不一樣的是觸發信號與槽的處理方法
首先要定義QComboBox ,
combo = QComboBox()
之後是用 addItem 加入選單內容
combo.addItem("Python")
再來定義觸發訊號與槽函數
combo.activated[str].connect(self.onChanged)
最後寫槽函數內容, onChanged 是槽函數
這裡要注意一下,Combo 的訊號跟其他不太相同多了[str], 所以會把addItem 的內容帶入槽函數
所以訊號後面呼叫槽函數的地方不需要再帶入參數
但槽函數需要加入參數, 如下
def onChanged(self, text):
其中 text 就是選擇的下拉式選單內容如Python
完整 code 如下
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QComboBox, QPushButton
class window(QMainWindow):
def __init__(self):
super().__init__()
combo = QComboBox(self)
combo.addItem("Python")
combo.addItem("C++")
combo.addItem("JS")
combo.move(50, 50)
self.qlabel = QLabel(self)
self.qlabel.move(100,100)
combo.activated[str].connect(self.onChanged) #Signal
self.setGeometry(300,100,320,200)
self.setWindowTitle("QCombo Example")
self.show()
def onChanged(self, text):
self.qlabel.setText(text)
self.qlabel.adjustSize()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = window()
sys.exit(app.exec_())
沒有留言:
張貼留言