- 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上。