3桁(ゼロを含む)を表示するように変更されたこのQSpinBox
クラスがあります。
class ThreeDigitSpinBox(QtGui.QSpinBox):
def __init__(self, *args):
QtGui.QSpinBox.__init__(self, *args)
def textFromValue(self, value):
return "%03d" % value
私の問題は、ウィジェットの既存の値を選択して削除し、キー入力を開始するたびに、カーソル位置がキー入力を台無しにすることです。
QSpinBox 内のすべてを削除したとしましょう。次に、値「314」を入力します。
(「|」を使用してカーソルを表します)
「3」を入力するとすぐに、ボックスに「003」が表示され、最初の 0 の直後にカーソルが表示されます。「0|03」。
2桁目の「1」を続けてキーを押すと、SpinBoxは2桁目の直後にカーソルを持って「103」と表示します。" 10|3 "
カーソルの位置の関係で、意図した数字「314」が入力されませんでした。代わりに、「314」の 3 桁すべてを入力すると、「1043」が表示されます。
数字を正しく入力できるように、カーソルが適切な位置にあることを確認するにはどうすればよいですか?
Python 2.7.3 (32 ビット) で Windows XP SP3 を使用しています。