当我们需要在 PyQt5 应用程序中添加复选框时,我们可以使用 QCheckBox。
QCheckBox 是一个小部件,当触发时,它会将其状态从选中/取消选中之间切换。
当我们添加 QCheckBox 后,我们可以改变其标题和状态。
接下来的步骤将演示如何添加 QCheckBox,改变其标题并检测其状态。
步骤1:导入必要的库
我们使用 PyQt5 构建此应用程序,因此我们需要导入 PyQt5 库和 QtWidgets 模块。此外,我们将使用QVBoxLayout管理复选框的布局。
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QCheckBox
import sys
步骤2:创建窗口和布局
在此步骤中,我们将创建QWidget窗口并添加QVBoxLayout。 QVBoxLayout 使用垂直框布局使窗口中的部件垂直排列。
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 Checkbox'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
vbox = QVBoxLayout()
self.setLayout(vbox)
步骤3:添加QCheckBox
在此步骤中,我们将添加 QCheckBox 到 QWidget 窗口中,并在初始状态下将其设置为ticked。
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 Checkbox'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
vbox = QVBoxLayout()
self.setLayout(vbox)
checkBox = QCheckBox("This is a CheckBox", self)
checkBox.setChecked(True)
vbox.addWidget(checkBox)
self.show()
步骤4:改变复选框标题
在此步骤中,我们将演示如何更改复选框的标题。我们可以通过调用setText方法来更改复选框的标题。
checkBox.setText("This is a Modified CheckBox")
示例1:改变一个现有复选框的标题
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QCheckBox
import sys
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 Checkbox'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
vbox = QVBoxLayout()
self.setLayout(vbox)
checkBox = QCheckBox("This is a CheckBox", self)
checkBox.setChecked(True)
vbox.addWidget(checkBox)
# 修改复选框标题
checkBox.setText("This is a Modified CheckBox")
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
示例2:添加多个复选框并打印选中状态
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QCheckBox
import sys
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 Checkbox'
self.left = 10
self.top = 10
self.width = 320
self.height = 200
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
vbox = QVBoxLayout()
self.setLayout(vbox)
# 第一个复选框
checkBox1 = QCheckBox("Python", self)
checkBox1.setChecked(True)
vbox.addWidget(checkBox1)
# 第二个复选框
checkBox2 = QCheckBox("Java", self)
vbox.addWidget(checkBox2)
# 第三个复选框
checkBox3 = QCheckBox("Ruby", self)
vbox.addWidget(checkBox3)
# 打印选中状态
def on_click(checkbox):
if checkbox.isChecked():
print("{0} selected".format(checkbox.text()))
checkBox1.stateChanged.connect(lambda: on_click(checkBox1))
checkBox2.stateChanged.connect(lambda: on_click(checkBox2))
checkBox3.stateChanged.connect(lambda: on_click(checkBox3))
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
这是使用 PyQt5 添加/改变复选框标题的完整攻略。