【PyQt5-Qt Designer】QSpinBox-微调框
QSpinBox-微调框
QSpinBox类提供了一个微调框小部件。
QSpinBox被设计为处理整数和离散值集合(例如,月份名称);使用QDoubleSpinBox 可以作为浮点数的调整。
QSpinBox允许用户通过点击上/下按钮或按下键盘上的/下来选择一个值来增加/减少当前显示的值。用户也可以手动输入值。微调框支持整数值,
但可以用与 validate(),textFromValue()和valueFromText() 扩展为使用不同的字符串。
每次值改变QSpinBox发出两个valueChanged()信号,一个提供一个int,另一个提供一个QString。 QString重载提供了prefix()和suffix()两个值。当前值可以通过value()获取,并通过setValue()设置。
单击向上/向下按钮或使用键盘的向上和向下箭头将按照sizeStep()的大小逐步增加或减少当前值。如果你想改变这个行为,你可以重新实现函数stepBy()。
最小值和最大值以及步长可以使用其中一个构造函数来设置,稍后可以使用setMinimum(),setMaximum()和setSingleStep(True)来更改。
大多数微调框是定向的,但是QSpinBox也可以例外,即如果范围是0-99并且当前值是99,则如果wrapping()被设置为True,则单击“up”将给出0。如果你想循环行为,使用setWrapping()。
所显示的值可以预先加上任意字符串,例如表示货币或计量单位。
更多详细的介绍请见官网:QSpinBox Class | Qt Widgets 5.9
QSpinBox小例子
先来看看具体例子的效果吧:
效果如下:
参考:
QRegExp Class | Qt Core 5.9
if regExp.exactMatch(str): return int(regExp.cap(1)) else: return 0
要是找了匹配的字符床,返回由第n个子表达式捕获的文本。cap()匹配的元素的顺序如下。第一个元素cap(0)是整个匹配的字符串。cap(1)是第一个捕获括号的文本,cap(2)是第二个文本,依此类推。明显我们这里是想匹配“\d+”,然后将其转换成数字。
def textFromValue(self,num): return "{0} x {1}".format(num,num)
这里就是重写textFromValue()函数,显示成“数字 x 数字”的形式。