- QSpinBox复合实践
主要内容 #
完成效果 #
完成本节课程,能学会在窗口应用程序中增加SpinBox,并且实现将点击的数值展示在QLineEdit中,并且当数值增加到一定时,弹出QMessageBox提示。
效果如下:

收获 #
学习完本节内容,我们会了解QComboBox复合实践的具体步骤,实现控件间的信息传递等进阶操作。
1.QSpinBox复合实践 #
在本复合实践中,首先在窗口应用程序中新增QSpinBox计数器,并通过信号槽机制实现当改变计数器数值时,该数值在QLineEdit上显示。
并且当计数器数值超过50时,弹出提示框显示提示信息。
以下是代码实现示例:
from PyQt5.QtWidgets import QWidget, QLineEdit,QSpinBox, QApplication, QMessageBox, QLabel
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.spinbox = QSpinBox(self) # 创建一个计数器控件
self.spinbox.setMinimum(2) # 设置计数器的下界
self.spinbox.setMaximum(100) # 设置计数器的上界
self.spinbox.setSingleStep(20) # 设置计数器的步长值,步长为20代表每次计数值增加20
# 如果用户改变了计数器数值,则触发valueChanged信号,该信号与槽函数showValued相连
self.spinbox.valueChanged.connect(self.showValue)
self.edit = QLineEdit(self) # 创建一个文本编辑框
# 移动计数器和编辑框的位置
self.spinbox.move(50, 50)
self.edit.move(50, 100)
self.setGeometry(300, 300, 400, 400)
self.setWindowTitle('QSpinBox')
self.show()
def showValue(self): # 槽函数
# 让编辑框显示计数器的数值
self.edit.setText('current values:'+str(self.spinbox.value()))
if self.spinbox.value()>50: # 若计数器数值超过50,则弹出提示框
QMessageBox.information(self, "提示框", '计数器数值已经超过50了!')
app = QApplication(sys.argv) # 创建应用程序
ex = Example() # 创建窗口对象
sys.exit(app.exec_()) # 设置关闭窗口后结束进程
拓展练习:尝试更改计数器的上下界和步长值并运行程序。
小结 #
习题 #
- 习题1:类似地,将QLineEdit改为QLabel,改变计数器数值时显示该数值在QLabel上。