假設我有一組spinboxes,comboboxes和whatnot,我可以在其中爲應用程序設置各種變量;一個控制面板,如果你願意的話。其中一個是QDoubleSpinBox *dec
,通常我使用它應該是小數,但有一個特定的組合框可根據所選條目動態啓用/禁用某些旋轉框和組合框。一個這樣的改變使用了spinbox,它僅在那個時間需要被限制爲整數值和增量。用QDoubleSpinBox暫時使用整數
例如,如果dec
通常具有的範圍內0.00..99.99
和增量是0.1
,當我選擇的是,在控制組合框中的某些條目,我需要dec
是在相同的範圍(99
只是細),但發射只能是整數,並且只能用整數步進更改(即範圍爲0..99
,步長爲1
)。
雖然我發現(初學者在Qt),我可以簡單地強制setDecimals()
和setSingleStep()
爲組合框中的特定條目,事實證明我必須使用它們的所有,才能夠恢復更改,它可以添加到代碼。有更好的解決方案嗎?
如果你的紡紗箱突然不允許雙打了,我會說它在概念上是不同的,應該用普通紡紗箱替換整數。 如果你需要,你可以讓兩個旋轉盒共存,然後在需要時隱藏()和顯示()。 – oLen
這並不是一個糟糕的解決方案,實際上,即使它仍然需要爲所有其他組合條目調用hide()和show()來恢復(就像setDecimals()和setSingleStep() )。加上這個答案,如果沒有人會與其他任何東西一起,這是一個更好的實現,相比我的醜陋的黑客。 –
你使用'setDecimals'和'setSingleStep'的解決方案很簡單並且重點突出。另一種方法是堆疊多個小部件並同步它們的值:這是更多的工作。 –