python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5復(fù)選框控件QCheckBox詳細(xì)使用方法與實(shí)例
QCheckBox類中常用方法如表
方法 | 描述 |
---|---|
setChecked() | 設(shè)置復(fù)選框的狀態(tài),設(shè)置為T(mén)rue表示選中,F(xiàn)alse表示取消選中的復(fù)選框 |
setText() | 設(shè)置復(fù)選框的顯示文本 |
text() | 返回復(fù)選框的顯示文本 |
isChecked() | 檢查復(fù)選框是否被選中 |
setTriState() | 設(shè)置復(fù)選框?yàn)橐粋€(gè)三態(tài)復(fù)選框 |
setCheckState() | 三態(tài)復(fù)選框的狀態(tài)設(shè)置,具體設(shè)置可以見(jiàn)下表 |
三態(tài)復(fù)選框的三種狀態(tài)
名稱 | 值 | 含義 |
---|---|---|
Qt.Checked | 2 | 組件沒(méi)有被選中(默認(rèn)) |
Qt.PartiallyChecked | 1 | 組件被半選中 |
Qt.Unchecked | 0 | 組件被選中 |
QCheckBox按鈕的使用實(shí)例
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)建一個(gè)GroupBox組 groupBox = QGroupBox("Checkboxes") groupBox.setFlat(False) #創(chuàng)建復(fù)選框1,并默認(rèn)選中,當(dāng)狀態(tài)改變時(shí)信號(hào)觸發(fā)事件 self.checkBox1 = QCheckBox("&Checkbox1") self.checkBox1.setChecked(True) self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1)) #創(chuàng)建復(fù)選框,標(biāo)記狀態(tài)改變時(shí)信號(hào)觸發(fā)事件 self.checkBox2 = QCheckBox("Checkbox2") self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2)) #創(chuàng)建復(fù)選框3,設(shè)置為3狀態(tài),設(shè)置默認(rèn)選中狀態(tài)為半選狀態(tài),當(dāng)狀態(tài)改變時(shí)信號(hào)觸發(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) #設(shè)置QGroupBox組的布局方式 groupBox.setLayout(layout) #設(shè)置主界面布局垂直布局 mainLayout = QVBoxLayout() #QgroupBox的控件添加到主界面布局中 mainLayout.addWidget(groupBox) #設(shè)置主界面布局 self.setLayout(mainLayout) #設(shè)置主界面標(biāo)題 self.setWindowTitle("checkbox demo") #輸出三個(gè)復(fù)選框當(dāng)前的狀態(tài),0選中,1半選,2沒(méi)選中 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代碼分析:
在這個(gè)例子中,將三個(gè)復(fù)選框添加到一個(gè)水平布局管理器中,并添加到一個(gè)QGroupBox組中
groupBox = QGroupBox("Checkboxes") groupBox.setFlat(False)
將三個(gè)復(fù)選框的stateChanged信號(hào)都連接到槽函數(shù)stateChanged(),使用landba的方式傳遞對(duì)象給槽函數(shù)
當(dāng)QCheckBox狀態(tài)改變時(shí)發(fā)射stateChanged信號(hào),當(dāng)信號(hào)發(fā)生改變時(shí)觸發(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))
實(shí)例化對(duì)象CheckBox1和CheckBox2兩個(gè)對(duì)象,將CheckBox1的狀態(tài)設(shè)置為選中,為CheckBox1設(shè)置為快捷鍵,使用‘&'符號(hào),則可以通過(guò)快捷鍵Alt+C選中checkbox1復(fù)選框
self.checkBox1 = QCheckBox("&Checkbox1") self.checkBox1.setChecked(True)
使用按鈕的isChecked()方法,判斷復(fù)選框是否被選中,其核心代碼是:
chk1Status = self.checkBox1.text() + ", isChecked=" + str(self.checkBox1.isChecked()) + ', chekState=' + str( self.checkBox1.checkState()) + "\n"
實(shí)例化一個(gè)QCheckBox類的對(duì)象checkBox3,然后使用setTristate()開(kāi)啟三態(tài)模式,然后設(shè)置為半選狀態(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))
本文詳細(xì)講解了PyQt5復(fù)選框控件QCheckBox詳細(xì)使用方法與實(shí)例,更多關(guān)于PyQt5控件知識(shí)請(qǐng)查看下面的相關(guān)鏈接
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5布局控件QHBoxLayout詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法
- Pyqt5自適應(yīng)布局實(shí)例
- 淺談pyqt5在QMainWindow中布局的問(wèn)題
- PyQt5每天必學(xué)之布局管理
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5滾動(dòng)條控件QScrollBar詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5樹(shù)形結(jié)構(gòu)控件QTreeWidget詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5選項(xiàng)卡控件QTabWidget詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5打印控件QPrinter詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5狀態(tài)欄控件QStatusBar詳細(xì)使用方法實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5計(jì)數(shù)器控件QSpinBox詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5切換按鈕控件QPushButton詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5多行文本框控件QTextEdit詳細(xì)使用方法實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單選按鈕控件QRadioButton詳細(xì)使用方法與實(shí)例
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5布局控件QVBoxLayout詳細(xì)使用方法與實(shí)例
相關(guān)文章
Python?網(wǎng)易易盾滑塊驗(yàn)證功能的實(shí)現(xiàn)
這篇文章主要介紹了Python?網(wǎng)易易盾滑塊驗(yàn)證,主要是借助之前寫(xiě)阿里云盾滑塊和極驗(yàn)滑塊的經(jīng)驗(yàn)寫(xiě)的本文,通過(guò)使用selenium請(qǐng)求url,并觸發(fā)滑塊驗(yàn)證,需要的朋友可以參考下2022-05-05使用python檢測(cè)主機(jī)存活端口及檢查存活主機(jī)
這篇文章主要介紹了使用python檢測(cè)主機(jī)存活端口及檢查存活主機(jī)的相關(guān)資料,需要的朋友可以參考下2015-10-10windows環(huán)境下tensorflow安裝過(guò)程詳解
這篇文章主要為大家詳細(xì)介紹了windows環(huán)境下tensorflow安裝過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python 強(qiáng)大的信號(hào)庫(kù) blinker 入門(mén)詳細(xì)教程
這篇文章主要介紹了Python 強(qiáng)大的信號(hào)庫(kù) blinker 入門(mén)教程,信號(hào)的特點(diǎn)就是發(fā)送端通知訂閱者發(fā)生了什么,使用信號(hào)分為 3 步:定義信號(hào),監(jiān)聽(tīng)信號(hào),發(fā)送信號(hào),需要的朋友可以參考下2022-02-02django之使用celery-把耗時(shí)程序放到celery里面執(zhí)行的方法
今天小編就為大家分享一篇django之使用celery-把耗時(shí)程序放到celery里面執(zhí)行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python實(shí)現(xiàn)Excel表格轉(zhuǎn)HTML
Excel工作簿是常用的表格格式,廣泛用于組織、分析及展示數(shù)據(jù),這篇文章主要為大家詳細(xì)介紹了如何使用Python將Excel工作簿或工作表轉(zhuǎn)換為HTML文件,需要的可以參考下2024-03-03