简述
QSpinBox和QDoubleSpinBox均派生自QAbstractSpinBox。
QSpinBox旨在处理整数和离散值(例如:月份名称),QDoubleSpinBox则用于处理浮点值。他们之间的区别就是处理数据的类型不同,其他功能都基本相同。
QDoubleSpinBox的默认的精度是2位小数,但可以通过setDecimals()来改变。
下面主要以QSpinBox为例,来讲解常用的功能。最后部分,会单独分享QDoubleSpinBox的精度设置。
详细描述
QSpinBox类提供了一个微调框部件。
QSpinBox允许用户选择一个值,通过单击向上/向下按钮或按下键盘的上/下箭头来增加/减少当前显示的值,用户也可以输入值。微调框支持整数值,但可以被扩展为不同的字符串,使用validate()、textFromValue()和valueFromText()。
当QSpinBox的值发生改变时,会发射两个valueChanged()信号,其中一个提供int类型,另一个则是QString类型,该QString提供了prefix()和suffix()。当前值可以用value()来读取,setValue()来设置。
单击向上/向下按钮或按下键盘的上/下箭头时,将以singleStep()为步长增加/减少当前值。如果想改变这种行为,可以重载虚函数stepBy()。最小值、最大值和步长可以使用其中的一个构造函数来设置,以后可以用setMinimum()、setMaximum()和setSingleStep()来修改。
大多数微调框是定向的,但也可以设置为循环的。例如:如果取值范围是0 - 99,当前值是99,如果wrapping()被设置为true