+-
QT中的64位int旋转框

我正在构建一个Windows程序,该程序应具有64位数值的控件。这些控件应可切换为已签名或未签名。

我发现了两个控件:“纺纱箱”(int32)和“双纺纱箱”(double)加倍,我可以覆盖范围,但它无法处理精度。

是否可以更改这些控件的数据类型?

是否可以创建一个自己的控件来处理有符号和无符号的64位值?是否可以创建一个128位Spin框?

我现在唯一能解决的问题是使用字符串控件并手动将其转换为INT64或UINT64,但对此解决方案我不太满意

还有其他想法吗?

我正在使用C ++的QT 4.7.4和VS2010thx

7
投票

您可以派生QAbstractSpinBox并至少重新实现虚拟功能stepBystepEnabled以及可能的validate()fixup()用于输入验证。

4
投票

我不使用修正功能。参见我的ustom QSpinBox的代码。从QAbstractSpinBox派生的类QLongLongSpinBox]

1
投票

要在Qt Creator中使用您的自定义类(窗口小部件):

0
投票

只是为了完整起见:每次遇到这样的问题时,请记住(万一其他方法都失败了),您可以下载Qt源代码,并在一个类中创建自己的QSpinBox64QSpinBox128类。只需几分钟即可修改所需的零件。