从固定点填充QDoubleSpinBox

时间:2017-06-29 06:08:49

标签: qt floating-point fixed-point

我在定点16.16中提供了一些数据,我想用QDoubleSpinbox进行修改。

问题是每当我将我的固定点转换为双精度时,就会出现不可避免的舍入问题。 double = fixed / (double)65536

0.2为例,固定点为0x00003333,但当我将其放入QDoubleSpinBox时,显示 0.19999694824188
但是当我触摸旋转盒时,它会转到0.2

如何在setValue上对QDoubleSpinBox进行舍入?

QDoubleSpinbox的行为与设计相符,但我的QAbstractTableModel却没有 当旋转框的控件不可见时,该表隐式使用QString来显示QVariant中给出的值。
在qstring中实现具有固定精度paint()的{​​{1}}函数后,它工作得很好!

1 个答案:

答案 0 :(得分:0)

快速测试表明这可以在这里工作:

double valueToSet = 0x00003333 / (double)65536;
ui.doubleSpinBox->setValue(valueToSet);

用户界面显示0.20。调用setValue()时,旋转框会旋转。您可以自己查看the source code。我建议使用调试器进入函数,看看有什么不同。