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



沒有留言:

張貼留言

ChartGPT 學 python 很強喔

 ChartGPT 最近很紅 ,  前一陣子有一些小 module  本來想 google  一下 語法 但發現用 chartGPT 直接請他給 sample code 反而較快 所以只要你有基本 知識 ChartGPT 可以加速你的開發 好用喔