PyQt5多选按钮

在本教程中,我们将学习PyQt5中的QCheckBoxQCheckBox是一个可以选中或取消选中的选项按钮。用户可以从复选框组中选中多个选项。

CheckBox示例

CheckBox.py
import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout,QCheckBox, QApplication)

class basicWindow(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QHBoxLayout()
        self.setLayout(layout)
        
        self.checkBoxA = QCheckBox("Select This.")
        self.labelA = QLabel("Not slected.")
        
        layout.addWidget(self.checkBoxA)
        layout.addWidget(self.labelA)
        
        self.setGeometry(200, 200, 300, 200)            
                
        self.setWindowTitle('CheckBox Example')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    windowExample = basicWindow()
    windowExample.show()
    sys.exit(app.exec_())    

这里,

self.checkBoxA = QCheckBox("Select This.")

self.checkBoxA是PyQt5中QCheckBox控件的一个实例。给出的文字 - Select This.将显示在CheckBox空心方块旁边。

PyQt5 CheckBox示例

CheckBox事件

用户行为一般为选中或取消选中复选框,然后应该根据状态更改信号执行操作。

CheckBox_Event.py
import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout,QCheckBox, QApplication)
from PyQt5 import QtCore

class basicWindow(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QHBoxLayout()
        self.setLayout(layout)
        
        self.checkBoxA = QCheckBox("Select This.")
        self.labelA = QLabel("Not slected.")
        
        self.checkBoxA.stateChanged.connect(self.checkBoxChangedAction)
        
        layout.addWidget(self.checkBoxA)
        layout.addWidget(self.labelA)
        
        self.setGeometry(200, 200, 300, 200)            
                
        self.setWindowTitle('CheckBox Example')
    
    def checkBoxChangedAction(self, state):
        if (QtCore.Qt.Checked == state):
            self.labelA.setText("Selected.")
        else:
            self.labelA.setText("Not Selected.")
        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    windowExample = basicWindow()
    windowExample.show()
    sys.exit(app.exec_())
    

self.checkBoxA.stateChanged.connect(self.checkBoxChangedAction)

我们将slot方法checkBoxChangeAction()连接到CheckBox stateChanged信号。每次用户选中或取消选中复选框时,它都会调用checkBoxChangeAction()

def checkBoxChangedAction(self, state):
	if (QtCore.Qt.Checked == state):
		self.labelA.setText("Selected.")
	else:
		self.labelA.setText("Not Selected.")

state参数是CheckBox传递的状态,如果选中复选框的话,labelA文本将变为Selected.,而没选中的话,会显示Not Selected

PyQt5 CheckBox事件