下面是关于Python PyQt5 QCheckBox小工具的完整使用攻略。
概述
QCheckBox是PyQt5中的一个小工具,是一个复选框,可用于表示On或Off状态。用户可以通过选中或取消选中复选框来改变复选框的状态。
使用方法
1. 导入PyQt5库和其他必要库
使用PyQt5 QCheckBox小工具,首先需要导入PyQt5库。如果使用PyCharm IDE,可通过以下命令安装:
pip install pyqt5
在程序中导入PyQt5库及其他必要库:
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout
import sys
2. 创建一个QCheckBox对象
checkbox = QCheckBox('复选框', self)
创建一个复选框必须要有一个标签,这里我们使用了“复选框”作为标签的文字。
3. 设置复选框状态
可以使用setChecked函数来设置复选框的状态:
checkbox.setChecked(True)
4. 获取复选框状态
可以使用isChecked函数来获取当前复选框的状态:
status = checkbox.isChecked()
5. 处理复选框状态改变事件
当复选框的状态改变时,会触发一个信号,可以通过以下代码处理:
def handleChange(self, state):
"""
处理复选框状态改变事件
"""
if state == QtCore.Qt.Checked:
print('选中')
else:
print('未选中')
checkbox.stateChanged.connect(self.handleChange)
其中handleChange函数是自定义的处理函数,会根据复选框状态打印“选中”或“未选中”。最后,使用connect函数将复选框的状态改变信号连接到handleChange函数上,当复选框状态改变时,就会触发handleChange函数。
示例
下面两个示例演示了如何使用QCheckBox小工具。
示例1:单独使用
这个示例展示如何单独使用一个复选框。
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
checkbox = QCheckBox('复选框', self)
checkbox.toggle()
vbox.addWidget(checkbox)
self.setLayout(vbox)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('复选框')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
执行程序后,会出现一个窗口,其中包含了一个复选框。单击复选框,可以使其选中或取消选中。
示例2:与其他控件联动
这个示例演示了如何在选中或取消选中复选框时改变其他控件的状态。这个例子中我们将使用两个复选框。
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
vbox = QVBoxLayout()
checkbox1 = QCheckBox('复选框1', self)
checkbox1.stateChanged.connect(self.handleChange)
vbox.addWidget(checkbox1)
checkbox2 = QCheckBox('复选框2', self)
checkbox2.stateChanged.connect(self.handleChange)
vbox.addWidget(checkbox2)
self.setLayout(vbox)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('复选框')
self.show()
def handleChange(self, state):
sender = self.sender()
if sender.isChecked():
print(sender.text() + '被选中')
else:
print(sender.text() + '被取消选中')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
执行程序后,会出现一个窗口,其中包含了两个复选框。当任一复选框被选中时,程序会打印出哪个复选框被选中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 QCheckBox小工具 - Python技术站