python GUI庫圖形界面開發(fā)之PyQt5復選框控件QCheckBox詳細使用方法與實例
QCheckBox類中常用方法如表
| 方法 | 描述 |
|---|---|
| setChecked() | 設置復選框的狀態(tài),設置為True表示選中,F(xiàn)alse表示取消選中的復選框 |
| setText() | 設置復選框的顯示文本 |
| text() | 返回復選框的顯示文本 |
| isChecked() | 檢查復選框是否被選中 |
| setTriState() | 設置復選框為一個三態(tài)復選框 |
| setCheckState() | 三態(tài)復選框的狀態(tài)設置,具體設置可以見下表 |
三態(tài)復選框的三種狀態(tài)
| 名稱 | 值 | 含義 |
|---|---|---|
| Qt.Checked | 2 | 組件沒有被選中(默認) |
| Qt.PartiallyChecked | 1 | 組件被半選中 |
| Qt.Unchecked | 0 | 組件被選中 |
QCheckBox按鈕的使用實例
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
class CheckBoxDemo(QWidget):
def __init__(self, parent=None):
super(CheckBoxDemo, self).__init__(parent)
#創(chuàng)建一個GroupBox組
groupBox = QGroupBox("Checkboxes")
groupBox.setFlat(False)
#創(chuàng)建復選框1,并默認選中,當狀態(tài)改變時信號觸發(fā)事件
self.checkBox1 = QCheckBox("&Checkbox1")
self.checkBox1.setChecked(True)
self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1))
#創(chuàng)建復選框,標記狀態(tài)改變時信號觸發(fā)事件
self.checkBox2 = QCheckBox("Checkbox2")
self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2))
#創(chuàng)建復選框3,設置為3狀態(tài),設置默認選中狀態(tài)為半選狀態(tài),當狀態(tài)改變時信號觸發(fā)事件
self.checkBox3 = QCheckBox("tristateBox")
self.checkBox3.setTristate(True)
self.checkBox3.setCheckState(Qt.PartiallyChecked)
self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))
#水平布局
layout = QHBoxLayout()
#控件添加到水平布局中
layout.addWidget(self.checkBox1)
layout.addWidget(self.checkBox2)
layout.addWidget(self.checkBox3)
#設置QGroupBox組的布局方式
groupBox.setLayout(layout)
#設置主界面布局垂直布局
mainLayout = QVBoxLayout()
#QgroupBox的控件添加到主界面布局中
mainLayout.addWidget(groupBox)
#設置主界面布局
self.setLayout(mainLayout)
#設置主界面標題
self.setWindowTitle("checkbox demo")
#輸出三個復選框當前的狀態(tài),0選中,1半選,2沒選中
def btnstate(self, btn):
chk1Status = self.checkBox1.text() + ", isChecked=" + str(self.checkBox1.isChecked()) + ', chekState=' + str(
self.checkBox1.checkState()) + "\n"
chk2Status = self.checkBox2.text() + ", isChecked=" + str(self.checkBox2.isChecked()) + ', checkState=' + str(
self.checkBox2.checkState()) + "\n"
chk3Status = self.checkBox3.text() + ", isChecked=" + str(self.checkBox3.isChecked()) + ', checkState=' + str(
self.checkBox3.checkState()) + "\n"
print(chk1Status + chk2Status + chk3Status)
if __name__ == '__main__':
app = QApplication(sys.argv)
checkboxDemo = CheckBoxDemo()
checkboxDemo.show()
sys.exit(app.exec_())
效果圖如下

QCheckBox代碼分析:
在這個例子中,將三個復選框添加到一個水平布局管理器中,并添加到一個QGroupBox組中
groupBox = QGroupBox("Checkboxes")
groupBox.setFlat(False)
將三個復選框的stateChanged信號都連接到槽函數(shù)stateChanged(),使用landba的方式傳遞對象給槽函數(shù)
當QCheckBox狀態(tài)改變時發(fā)射stateChanged信號,當信號發(fā)生改變時觸發(fā)自定義的槽函數(shù)btnstate()
self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1)) self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2)) self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))
實例化對象CheckBox1和CheckBox2兩個對象,將CheckBox1的狀態(tài)設置為選中,為CheckBox1設置為快捷鍵,使用‘&'符號,則可以通過快捷鍵Alt+C選中checkbox1復選框
self.checkBox1 = QCheckBox("&Checkbox1")
self.checkBox1.setChecked(True)
使用按鈕的isChecked()方法,判斷復選框是否被選中,其核心代碼是:
chk1Status = self.checkBox1.text() + ", isChecked=" + str(self.checkBox1.isChecked()) + ', chekState=' + str(
self.checkBox1.checkState()) + "\n"
實例化一個QCheckBox類的對象checkBox3,然后使用setTristate()開啟三態(tài)模式,然后設置為半選狀態(tài)并連接槽函數(shù)
self.checkBox3 = QCheckBox("tristateBox")
self.checkBox3.setTristate(True)
self.checkBox3.setCheckState(Qt.PartiallyChecked)
self.checkBox3.stateChanged.connect(lambda: self.btnstate(self.checkBox3))
本文詳細講解了PyQt5復選框控件QCheckBox詳細使用方法與實例,更多關于PyQt5控件知識請查看下面的相關鏈接
- python GUI庫圖形界面開發(fā)之PyQt5布局控件QHBoxLayout詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5窗口布局控件QStackedWidget詳細使用方法
- Pyqt5自適應布局實例
- 淺談pyqt5在QMainWindow中布局的問題
- PyQt5每天必學之布局管理
- python GUI庫圖形界面開發(fā)之PyQt5滾動條控件QScrollBar詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5樹形結構控件QTreeWidget詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5選項卡控件QTabWidget詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5表格控件QTableView詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5打印控件QPrinter詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5狀態(tài)欄控件QStatusBar詳細使用方法實例
- python GUI庫圖形界面開發(fā)之PyQt5計數(shù)器控件QSpinBox詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5切換按鈕控件QPushButton詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5多行文本框控件QTextEdit詳細使用方法實例
- python GUI庫圖形界面開發(fā)之PyQt5單選按鈕控件QRadioButton詳細使用方法與實例
- python GUI庫圖形界面開發(fā)之PyQt5布局控件QVBoxLayout詳細使用方法與實例
相關文章
Python?網(wǎng)易易盾滑塊驗證功能的實現(xiàn)
這篇文章主要介紹了Python?網(wǎng)易易盾滑塊驗證,主要是借助之前寫阿里云盾滑塊和極驗滑塊的經(jīng)驗寫的本文,通過使用selenium請求url,并觸發(fā)滑塊驗證,需要的朋友可以參考下2022-05-05
windows環(huán)境下tensorflow安裝過程詳解
這篇文章主要為大家詳細介紹了windows環(huán)境下tensorflow安裝過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03
django之使用celery-把耗時程序放到celery里面執(zhí)行的方法
今天小編就為大家分享一篇django之使用celery-把耗時程序放到celery里面執(zhí)行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python實現(xiàn)Excel表格轉(zhuǎn)HTML
Excel工作簿是常用的表格格式,廣泛用于組織、分析及展示數(shù)據(jù),這篇文章主要為大家詳細介紹了如何使用Python將Excel工作簿或工作表轉(zhuǎn)換為HTML文件,需要的可以參考下2024-03-03

