我在不动点16.16中有一些数据,我想用QDoubleSpinbox来修改。
问题是,每当我把我的不动点转换成双倍时,就会出现不可避免的舍入问题。double = fixed / (double)65536
例如,0.2,在不动点,这是0x00003333,但是当我把它放到QDoubleSpinBox中时,它会显示0.19999694824188。
但只要我一接触到纺丝箱,它就会转到0.2。
如何在QDoubleSpinBox上进行setValue循环?
QDoubleSpinbox的行为与设计一致,但我的QAbstractTableModel却并非如此。
当旋量箱的控件不可见时,表隐式地使用QString来显示QVariant中给定的值。
在qstring中使用固定精度的paint()函数实现setnum()之后,它工作得很好!
发布于 2017-06-29 07:58:13
一个快速测试表明,这在这里是可行的:
double valueToSet = 0x00003333 / (double)65536;
ui.doubleSpinBox->setValue(valueToSet);UI显示0.20。当调用setValue()时,spinbox会执行循环操作。你可以自己检查源代码。我建议使用调试器进入这个函数,看看对您有什么不同。
https://stackoverflow.com/questions/44817510
复制相似问题