復選框一共有三種狀態:全選中、半選中和無選中。若一個父選項的子選項全部為選中狀態,則該父選項為全選中;若子選項全部為無選中狀態,則該父選項為無選中狀態;若子選項既有全選中和無選中狀態,則該父選項為半選中狀態
import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox from PyQt5.QtGui import QIcon class Demo(QWidget): def __init__(self): super().__init__() self.resize(300,300) self.checkbox = QCheckBox('選擇需要添加的佐料:', self) #實例化復選框 self.checkbox.move(30,20) self.checkbox1 = QCheckBox('辣椒', self) self.checkbox1.move(60,60) self.checkbox1.setIcon(QIcon('辣椒.png')) #設置圖標 self.checkbox2 = QCheckBox('生抽', self) self.checkbox2.move(60, 100) self.checkbox2.setIcon(QIcon('生抽.png')) self.checkbox3 = QCheckBox('味精', self) self.checkbox3.move(60, 140) self.checkbox3.setIcon(QIcon('味精.png')) self.checkbox.setTristate(True) # 設置復選框是否擁有三種狀態,默認只有兩種 # isTristate() 返回是否擁有三種狀態 self.checkbox.setCheckState(Qt.PartiallyChecked) # 設置復選框為選中狀態 # 無選中狀態Qt.Unchecked=0 選中狀態Qt.Checked=2 半選中狀態Qt.PartiallyChecked=1 #checkState() 返回復選框的選中狀態 self.checkbox1.setChecked(True) # 設置復選框為選中狀態 self.checkbox.stateChanged.connect(self.A) #復選框狀態發生改變的時候發出信號 #會向槽函數傳遞一個整型參數,表示選中的狀態 def A(self,i): print('狀態改變了',i) if __name__ == '__main__': app = QApplication(sys.argv) demo = Demo() demo.show() sys.exit(app.exec_())
setText() 設置復選框的顯示文本
isChecked() 檢查復選框是否被選中