PyQt5 QSpinBox小工具
一个 QSpinBox 对象向用户展示了一个文本框,该文本框显示一个整数,其右侧有向上/向下的按钮。如果向上/向下按钮被按下,文本框中的数值就会增加/减少。
默认情况下,框中的整数从0开始,一直到99,并按1级变化。对于浮动值,请使用QDoubleSpinBox。
QSpinBox类的重要方法如下表所示
序号 | 方法和描述 |
---|---|
1 | setMinimum() 设置计数器的下限值。 |
2 | setMaximum() 设置计数器的上限值 |
3 | setRange() 设置最小、最大和阶梯值 |
4 | setValue() 以编程方式设置旋转盒的值 |
5 | Value() 返回当前值 |
6 | singleStep() 设置计数器的步骤值 |
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()
上面的代码产生了以下的输出 –