У меня есть этот класс QSpinBox
, который изменен для отображения 3 цифр (включая нули).
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».
Когда я продолжаю нажимать вторую цифру «1», SpinBox отображает «103» с курсором сразу после второй цифры. "10|3"
Из-за положения курсора мой предполагаемый номер «314» так и не был введен. Вместо этого он отображает «1043» после ввода всех трех цифр «314».
Как мне убедиться, что курсор находится в правильном положении, чтобы я мог правильно вводить числа?
Я использую Windows XP SP3 с Python 2.7.3 (32 бита).