Python高級進階#011 pyqt5按鈕QPushButton應用

  • 2019 年 11 月 5 日
  • 筆記

一、案例目標

  1. 製作一個介面如右圖。功能是描述三原色。在設計中,我們往往有三原色的概念。
  2. 基本上所有的顏色都可以有三種顏色調和而成,這三種顏色分別是紅、綠、藍。
  3. 我們使用三個按鈕分表表述這三種顏色。每個按鈕都可以有兩種狀態:即選中按鈕為藍色,未選中按鈕為默認灰色。在介面中用一個區塊(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.掌握訊號槽傳參和控制項事件的傳遞