PyQt - 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 PyQt4.QtCore import *
from PyQt4.QtGui 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()

上面的代码产生以下输出 −

QSpinBox 小部件输出