2

0 から 33 までの値を入力できる QSpinBox を使用しています。デフォルト値は 0 です。キーボードを使用して数値を入力すると、先頭のゼロが保持され、面倒です。

例: キーボードから 23 を入力したい

「2」と入力すると、スピンボックスの値が「02」に変わります

「3」と入力します - 何も起こりません - スピンボックスがいっぱいです

この動作を防ぐにはどうすればよいですか?

ありがとう、A

4

2 に答える 2

3

QDoubleSpinBox でも同様の問題があり、末尾のゼロによって編集が不便になりました。

QDoubleSpinBox::textFromValue() を再実装してゼロをトリミングすることで解決しました。

于 2015-04-28T12:43:54.390 に答える
2

リスナーにコード行を追加してvalueChanged、先頭のゼロを削除します。

if (mySpinBox.value.length() > 1 && mySpinBox.value[0] == '0')
{
     mySpinBox.value = mySpinBox.value.remove(0, 1);
}
于 2012-12-14T00:28:41.230 に答える