get paid

Get paid for the tasks you do online

2019年1月31日 星期四

PyQT5 教學--- QComoBox , 下拉式選單

下拉式選單也是很常用的UI元件

使用方法也很簡單, 比較不一樣的是觸發信號與槽的處理方法

首先要定義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_())



沒有留言:

張貼留言

Bloomberg Markets Wrap 2025-08-15: 股市因美國數據下漲,川普與普丁會議獲關注

 Bloomberg Markets Wrap 2025-08-15: 股市因美國數據下滑,川普與普丁會談受關注 發佈日期:2025-08-15 本篇文章翻譯與整理自 Bloomberg Markets Wrap(經 SWI swissin fo.ch 彙整),該報111導回顧了...