python GUI庫圖形界面開發(fā)之PyQt5復(fù)選框控件QCheckBox詳細使用方法與實例
import sysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *from PyQt5.QtCore import Qtclass CheckBoxDemo(QWidget): def __init__(self, parent=None): super(CheckBoxDemo, self).__init__(parent) #創(chuàng)建一個GroupBox組 groupBox = QGroupBox('Checkboxes') groupBox.setFlat(False) #創(chuàng)建復(fù)選框1,并默認選中,當狀態(tài)改變時信號觸發(fā)事件 self.checkBox1 = QCheckBox('&Checkbox1') self.checkBox1.setChecked(True) self.checkBox1.stateChanged.connect(lambda: self.btnstate(self.checkBox1)) #創(chuàng)建復(fù)選框,標記狀態(tài)改變時信號觸發(fā)事件 self.checkBox2 = QCheckBox('Checkbox2') self.checkBox2.toggled.connect(lambda: self.btnstate(self.checkBox2)) #創(chuàng)建復(fù)選框3,設(shè)置為3狀態(tài),設(shè)置默認選中狀態(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) #設(shè)置QGroupBox組的布局方式 groupBox.setLayout(layout) #設(shè)置主界面布局垂直布局 mainLayout = QVBoxLayout() #QgroupBox的控件添加到主界面布局中 mainLayout.addWidget(groupBox) #設(shè)置主界面布局 self.setLayout(mainLayout) #設(shè)置主界面標題 self.setWindowTitle('checkbox demo') #輸出三個復(fù)選框當前的狀態(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_())
效果圖如下
在這個例子中,將三個復(fù)選框添加到一個水平布局管理器中,并添加到一個QGroupBox組中
groupBox = QGroupBox('Checkboxes') groupBox.setFlat(False)
將三個復(fù)選框的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)設(shè)置為選中,為CheckBox1設(shè)置為快捷鍵,使用‘&’符號,則可以通過快捷鍵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'
實例化一個QCheckBox類的對象checkBox3,然后使用setTristate()開啟三態(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))
本文詳細講解了PyQt5復(fù)選框控件QCheckBox詳細使用方法與實例,更多關(guān)于PyQt5控件知識請查看下面的相關(guān)鏈接
相關(guān)文章:
1. 前端html+css實現(xiàn)動態(tài)生日快樂代碼2. 不要在HTML中濫用div3. el-input無法輸入的問題和表單驗證失敗問題解決4. CSS3實例分享之多重背景的實現(xiàn)(Multiple backgrounds)5. XML基本概念XPath、XSLT與XQuery函數(shù)介紹6. XML入門的常見問題(四)7. WML的簡單例子及編輯、測試方法第1/2頁8. vue實現(xiàn)復(fù)制文字復(fù)制圖片實例詳解9. 關(guān)于html嵌入xml數(shù)據(jù)島如何穿過樹形結(jié)構(gòu)關(guān)系的問題10. XML入門的常見問題(三)
