Python高級進階#011 pyqt5按鈕QPushButton應用
- 2019 年 11 月 5 日
- 筆記
一、案例目標
- 製作一個介面如右圖。功能是描述三原色。在設計中,我們往往有三原色的概念。
- 基本上所有的顏色都可以有三種顏色調和而成,這三種顏色分別是紅、綠、藍。
- 我們使用三個按鈕分表表述這三種顏色。每個按鈕都可以有兩種狀態:即選中按鈕為藍色,未選中按鈕為默認灰色。在介面中用一個區塊(QFrame)來表示顏色的狀態。
二、開發思路
1.製作介面採用PYqt5進行布局
2.採用盒子布局的方法進行介面布局
3.按鈕的狀態功能加入。
4.設置Qframe的背景顏色。
5.設置按鈕的點擊事件
6.設置三原色的情況,最終還是要通過改變Qframe樣式來實現顏色變化
三、開發過程
1. 使用框架容器QFrame
必須使用類庫QFrame
初始化:
myframe=QFrame()
注意點:
- 父容器可以採用後期添加到盒子布局的方式進行設置。
- 當然可以可以在初始化的時候設置。
- 父容器的設置會影響子容器的生命周期的。
2. 控制項設置CSS風格
可以通過setStyleSheet方法來設置。
這個方法幾乎在所有的Qwidget的控制項上都能實現。
使用舉例:
myframe.setStyleSheet("QWidget{background-color:black}")
在setStyleSheet方法中使用一個css類型的字元串。
這個css風格使用格式:
需要控制的控制項標籤或者行為,然後寫一個大括弧{},我們在大括弧內寫各類控制某個標籤的樣式。樣式的書寫風格就是 屬性:值
3. 按鈕切換
設置按鈕是否可以選中與不選中的狀態切換
使用setCheckable方法,默認情況下這個方法設置的值為false,我們只有設置為True才能打開這個按鈕的選中切換功能
舉例:
btnRed.setCheckable(True)
4. 槽函數傳參
槽函數的定義需要看我們的訊號源是否有參數。
訊號源中有參數的部分的訊號參數我們需要使用中括弧。
使用舉例:
btngGreen.clicked[bool].connect(self.setColor)
提問:如何傳遞控制項對象呢?
同時sender函數來實現。
b=self.sender()
5. 三原色函數
使用Qcolor來實現。
紅、綠、藍的值的分為都在[0,255]
第一個參數表示紅色
第二個參數表示綠色
第三個參數表示藍色
四、總結強調
1.掌握三原色函數
2.掌握布局的思想
3.掌握按鈕的選擇狀態
4.掌握槽函數的設置
5.掌握訊號槽傳參和控制項事件的傳遞