从固定点填充 QDoubleSpinBox

Posted

技术标签:

【中文标题】从固定点填充 QDoubleSpinBox【英文标题】:Fill QDoubleSpinBox from fixed point 【发布时间】:2017-06-29 06:08:48 【问题描述】:

我想用 QDoubleSpinbox 修改定点 16.16 中的一些数据。

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

0.2 为例,在定点上这是0x00003333,但是当我将它放入QDoubleSpinBox 时,它显示 0.19999694824188。 但只要我触摸旋转框,它就会四舍五入到0.2

如何让 QDoubleSpinBox 在 setValue 上四舍五入?


QDoubleSpinbox 的行为符合设计,但我的 QAbstractTableModel 不是。 当微调框的控件不可见时,表格会隐式使用 QString 来显示 QVariant 中给定的值。 在qstring中以固定精度setnum()实现paint()函数后,效果很好!

【问题讨论】:

查看小数属性。 spinbox 基于此值进行四舍五入:doc.qt.io/qt-5/qdoublespinbox.html#decimals-prop 【参考方案1】:

快速测试表明这在这里有效:

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

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

【讨论】:

查看编辑。在查看了源代码后,我查看了 spinbox 的容器。它就在那里。

以上是关于从固定点填充 QDoubleSpinBox的主要内容,如果未能解决你的问题,请参考以下文章

在选定的下拉列表中填充固定更改的输入文本[关闭]

自动调整大小的动态文本以填充固定大小的容器

带填充的固定定位

用照片填充固定尺寸的 div

从数据库填充 JTree

flexbox 一个元素固定高度,其他填充