计数器-QSpinBox

QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或者键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值。

在默认情况下,QSpinBox的取值范围是0~99,每次改变的步长值为1。

QSpinBox类和QDoubleSpinBox类均派生自QAbstractSpinBox类。QSpinBox用于处理整数值,QDoubleSpinBox则用于处理浮点值,他们之间的区别就是处理数据的类型不同,其它功能基本相同。QDoubleSpinBox的默认精度是两位小数,但可以通过setDecimals()来改变。

QSpinBox类中的常用方法:

  setMinimum()    设置计数器的下界

  setMaximum()    设置计数器的上界

  setRange()        设置计数器的最大值、最小值和步长值

  setValue()       设置计数器的当前值

  Value()       返回计数器的当前值

  singleStep()      设置计数器的步长值

每次单击向上/向下按钮时,QSpinBox计数器都会发射valueChanged信号,可以从相应的槽函数中通过value()函数获得计数器的当前值。

案例18  QSpinBox的使用

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, QSpinBox, QComboBox, QLabel, QVBoxLayout


class SpinBoxDemo(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle("SpinBox 例子")
        self.resize(300, 100)

        layout = QVBoxLayout()
        self.lb1 = QLabel("current value:")
        self.lb1.setAlignment(Qt.AlignCenter)
        layout.addWidget(self.lb1)
        self.sp = QSpinBox()
        layout.addWidget(self.sp)
        self.sp.valueChanged.connect(self.valuechange)
        self.setLayout(layout)

    def valuechange(self):
        self.lb1.setText("current value:" + str(self.sp.value()))


if __name__ == "__main__":
    app = QApplication(sys.argv)
    demo = SpinBoxDemo()
    demo.show()
    sys.exit(app.exec_())
原文地址:https://www.cnblogs.com/lynsha/p/13409157.html