QDoubleSpinBox理论总结
- 1. 简述
- 2. 调值与值转换
- 3. 信号
- 4. 修饰&外观
1. 简述
QDoubleSpinBox 主要是对于浮点数据的输入进行便捷的封装。QDoubleSpinBox和QSpinBox的使用基本一致,只是有些控制有些不同嘛。比如对于浮点数的小数点精度位数的控制啦。
QDoubleSpinBox 其实就是一个输入框带有 加减的按钮组,方便调值,当然为了方便,肯定是绑定了鼠标滚轮调值、键盘上下调值的功能哈。和QLineEdit 的用处基本一致,用来接收用户的输入数据。
2. 调值与值转换
QDoubleSpinBox 允许用户通过 单击上/下按钮 或 按键盘上的上/下键来增加/减少 或者 鼠标滚轮前后滚动 来增加/减少 当前显示的值,可以看出有三种内置的方式。
同时,也是支持用户也可以手动输入值。
QDoubleSpinBox 的当前值可以用 value() 获取并用 setValue() 设置。QDoubleSpinBox 支持QString和double格式转换,以便不自己在去调用QString 的方法做转化:textFromValue() 和 valueFromText() 。
我们还可以定义步长,也就是 单击向上/向下按钮或使用键盘快捷键的向上和向下箭头将以 singleStep() 大小的步长增加或减少当前值。 QDoubleSpinBox 也提供了 setMinimum()、setMaximum() 和 setSingleStep() (自定义步长可以是double值)函数来调整这个QSpinBox的最大值最小值和步长进行更改。还可以 setDecimals() 就是设置精度的函数。
- 这就是不同精度
大多数QDoubleSpinBox 是有方向的,但 QDoubleSpinBox 也可以作为圆形 QDoubleSpinBox 操作,即如果范围为 0.00-99.00 (这里步长为1)且当前值为 99.00,如果 wrapping() 设置为 true,则单击“向上”将给出 0。 如果想要循环行为,请使用 setWrapping() 。其实就是说 到最大值时的下一个可不可以继续从 最小值开始再增长。
注意: QDoubleSpinBox 会对当前的数据进行精度控制,也就是会保留小数位数. 比如默认两位小数精度的时候, setValue(2.555) 会使获取 value() 的值 2.56。
注意:显示值的QDoubleSpinBox最多数据字符≤18个字符(不包括最终的前缀和后缀的内容)。这个限制是用来防止QDoubleSpinBox 值 在非常大的时候还可以正常使用。
3. 信号
每次值更改时,QDoubleSpinBox 都会发出 valueChanged() 和 textChanged() 信号,前者提供一个 double,后者提供一个 QString。 textChanged() 信号提供带有 prefix() 和 suffix() 的值。
4. 修饰&外观
显示的值可以在前面和后面附加任意字符串(包括空格哈),例如货币或测量单位。 请参见 setPrefix() 和 setSuffix()。 QDoubleSpinBox 中的文本使用 text()(包括任何 prefix() 和 suffix())或使用 cleanText()(没有 prefix()、没有 suffix() 并且没有前导或尾随空格)获取到值。就像这种
同时,我们也可以使用QAbstractSpinBox 的 是否启用 按钮和按钮特色 是 setButtonSymbols()
Constant | 描述 |
---|---|
QAbstractSpinBox::UpDownArrows | 箭头 |
QAbstractSpinBox::PlusMinus | 加减号 |
QAbstractSpinBox::NoButtons | 不要按钮显示 |
这个是fusion上面的样子
在Windows上有些好像不能用,但是也不要紧,可以用QSS来弄