PyQt5基本窗口控件(七)QSpinBox
七、QSpinBox
-
QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值。
-
在默认情况下,QSpinBox的取值范围是0~99,每次改变的步长值为1。QSpinBox类和QDoubleSpinBox类均派生自QAbstractSpinBox类。
-
QSpinBox用于处理整数值,QDoubleSpinBox则用于处理浮点值,它们之间的区别就是处理数据的类型不同,其他功能都基本相同。QDoubleSpinBox的默认精度是两位小数,但可以通过setDecimals()来改变。
方法 | 描述 |
---|---|
setMinimum() | 设置计数器的下界 |
setMaximum() | 设置计数器的上界 |
setRange() | 设置计数器的最大值、最小值和步长值 |
setValue() | 设置计数器的当前值 |
Value() | 返回计数器的当前值 |
singleStep() | 设置计数器的步长值 |
- 每次单击向上/向下按钮时,QSpinBox计数器都会发射 valueChanged信号,可以从相应的槽函数中通过value()函数获得计数器的当前值。
案例十八 QSpinBox的使用
# -*- coding:utf-8 -*-
"""
# @Time:2022/12/9 0009 9:01
# @Author:晚秋拾叶
# @File:qt04_QSpinBox.py
# @PyCharm之Python
"""
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class SpinDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("SpinBox案例")
self.resize(300, 100)
layout = QVBoxLayout()
self.l1 = QLabel("current value:")
self.l1.setAlignment(Qt.AlignCenter)
layout.addWidget(self.l1)
self.sp = QSpinBox()
layout.addWidget(self.sp)
self.sp.valueChanged.connect(self.valuechange)
self.setLayout(layout)
def valuechange(self):
self.l1.setText("current value :" + str(self.sp.value()))
if __name__ == '__main__':
app = QApplication(sys.argv)
win = SpinDemo()
win.show()
sys.exit(app.exec_())
- 代码分析
- 在这个例子中,有一个标签和计数器放置在一个垂直布局中,再把这个布局器放在窗口中。计数器的valueChange信号连接到valuechange(),最后这个槽函数再把计数器的当前值放到标签文本中。
- 效果如图