PyQt5 - QSpinBox 小部件
QSpinBox 对象向用户展示了一个文本框,该文本框在其右侧显示一个带有向上/向下按钮的整数。 如果按下向上/向下按钮,文本框中的值会增加/减少。
默认情况下,框中的整数从 0 开始,到 99 并按步骤 1 更改。浮点值使用 QDoubleSpinBox。
QSpinBox类的重要方法如下表所示 −
序号 | 方法 & 说明 |
---|---|
1 |
setMinimum() 设置计数器的下限 |
2 |
setMaximum() 设置计数器的上限 |
3 |
setRange() 设置最小值、最大值和步长值 |
4 |
setValue() 以编程方式设置旋转框的值 |
5 |
Value() 返回当前值 |
6 |
singleStep() 设置计数器的步长值 |
每次按下 up/own 按钮时,QSpinBox 对象都会发出 valueChanged() 信号。 关联的槽函数可以通过 value() 方法获取小部件的当前值。
以下示例在顶部窗口的垂直布局中放置了一个标签 (l1) 和旋转框 (sp)。 valueChanged() 信号连接到 valuechange() 方法。
self.sp.valueChanged.connect(self.valuechange)
valueChange() 函数将当前值显示为标签的标题。
self.l1.setText("current value:"+str(self.sp.value()))
完整代码如下 −
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class spindemo(QWidget): def __init__(self, parent = None): super(spindemo, self).__init__(parent) 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) self.setWindowTitle("SpinBox demo") def valuechange(self): self.l1.setText("current value:"+str(self.sp.value())) def main(): app = QApplication(sys.argv) ex = spindemo() ex.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
上面的代码产生以下输出 −