【发布时间】:2016-12-15 13:53:31
【问题描述】:
假设我有一整组旋转框、组合框等等,我可以在其中为应用程序设置各种变量;一个控制面板,如果你愿意的话。其中之一是QDoubleSpinBox *dec,通常情况下,我使用它应该是小数,但是有一个特定的组合框可以动态启用/禁用一些旋转框和组合框,具体取决于所选条目。其中一项更改使用了 dec 旋转框,仅在此时,需要将其限制为整数值和增量。
例如,如果dec 通常具有0.00..99.99 范围并且增量为0.1,当我在控制组合框中选择某个条目时,我需要dec 在同一范围内(@ 987654327@ 很好),但只发出整数,并且只能通过整数步长进行更改(即范围为0..99,步长为1)。
虽然我发现(Qt 初学者)我可以简单地将 setDecimals() 和 setSingleStep() 强制用于组合框中的特定条目,但事实证明我必须全部使用它们才能恢复更改,可以添加到代码中。有没有更好的解决方案?
【问题讨论】:
-
如果您的旋转框突然不再允许双打,我会说它在概念上有所不同,应该用普通的整数旋转框代替。如果需要,您可以让两个旋转框共存,然后在需要时使用
hide()和show()。 -
实际上,这不是一个糟糕的解决方案,即使它仍然需要为所有其他组合条目调用
hide()和show()来恢复(就像setDecimals()和setSingleStep()) .添加这个作为答案,如果没有人会提供其他任何东西,与我丑陋的黑客相比,这是一个更好的实现。 -
您使用
setDecimals和setSingleStep的解决方案简单明了。另一种方法是堆叠多个小部件并同步它们的值:这是更多的工作。