Я пытаюсь использовать QLineEdit для ввода шести чисел с маской ввода, но проблема в том, что когда пользователь щелкает в строке -edit, позиция курсора находится именно там, где вы нажимаете.PySide: перезагрузите курсор pos до 0 при нажатии в QLineEdit с маской ввода
Я изо всех сил стараюсь, чтобы он сместил позицию до начала. Я читал подобные вопросы - и ответы на них - но я не могу заставить его работать (многие из них находятся на C++, а потому, что у меня нет опыта с ним, я не могу реплицировать код в Python).
Мне удалось установить фильтр событий, который распознает, когда пользователь нажимает на QLineEdit, и я могу напечатать позицию курсора, которую пользователь установил при нажатии. Но когда я пытаюсь вручную установить его на 0, это не сработает. Ну, это работает, но только если все приложение, содержащее QLineEdit, теряет фокус, и пользователь возвращается к нему. Таким образом, я ищу способ обновить/перекрасить все приложение внутри класса Filter.
class Filter(QObject):
def eventFilter(self, widget, event):
# FocusIn event
if event.type() == QEvent.FocusIn:
print 'focus in'
widget.setCursorPosition(0)
return False
else:
return False
Это устанавливает позицию курсора в 0, но в реальном приложении она показывает только, когда я Alt + Tab или все окно теряет и получает фокус снова. Ручная перерисовка()/update() виджета/окна ничего не делает.