PyQt5 控件 QSpinBox
1. QSpinBox
QSPINBox是一个计数器控件,允许用户选择一个整数值通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值,当然用户也可以输入值
在默认情况下,QSpinBox的取值范围是(0-99),每次改变的步长是1
QSpinBox类和QDoubleSpinbox类均派生自QAbstractSpinBox类,QSpinBox用于处理整数值,QDoubleSpinBox则用于处理浮点数值,他们之间的区别就是处理数据的类型不同,其他功能基本相同,QDoubleSpinBox的默认精度是两位小数,但可以通过setDecimals()来改变
1.1. QSpinBox类中的常用方法
- init(parent: QWidget = None)
- cleanText() → str
- displayIntegerBase() → int
- event(QEvent) → bool
- fixup(str) → str
- maximum() → int
- minimum() → int
- prefix() → str # 获取前缀
- setDisplayIntegerBase(int) # 进制设置
- setMaximum(int) # 最大值
- setMinimum(int)
- setPrefix(str) # 设置前缀
- setRange(int, int) # 设置范围
- setSingleStep(int) # 设置步长
- setStepType(StepType) # 未知
- setSuffix(str) # 设置前缀-
- setValue(int)
- singleStep() → int # 获取步长值
- stepType() → StepType
- suffix() → str # 获取后缀
- textFromValue(int) → str
- validate(str, int) → (State, str, int)
- value() → int
- valueFromText(str) → int
1.2. Signals
- textChanged(str)
- valueChanged(int)
- valueChanged(str)
2. 实验代码
import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * class MainWidget(QWidget): def __init__(self, parent=None): super().__init__(parent) self.resize(300, 100) # 垂直布局 layout = QVBoxLayout() # 标签 self.l1 = QLabel("current value:") self.l1.setAlignment(Qt.AlignCenter) layout.addWidget(self.l1) # 计数器 self.spinBox = QSpinBox() self.spinBox.setRange(0, 300) self.spinBox.setSingleStep(5) layout.addWidget(self.spinBox) self.spinBox.valueChanged.connect(self.onValueChanged) self.setLayout(layout) def onValueChanged(self, value): #print("current value is {0}".format(value)) self.l1.setText("current value: {}".format(self.spinBox.value())) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWidget() window.resize(400, 200) window.show() sys.exit(app.exec_())