У меня проблема с QDoubleSpinBox. Редактирование поведения ключа «backspace» каким-то образом зависит от размера суффикса. Если я установил «m» в качестве суффикса, тогда установите курсор в конце спинбокса и нажмите «backspace», курсор переместится над суффиксом «m» к значению, которое затем можно отредактировать с помощью дополнительных «обратных пространств». Если я устанавливаю суффикс на «мм» или любое двунаправленное слово, курсор остается в конце спинбокса независимо от того, сколько «обратных шагов» я нажимаю.Редактирование поведения клавиши «backspace» QDoubleSpinBox
Я попытался отладить то, что входит в метод проверки и получил особый результат: Когда нажата кнопка «backspace», когда курсор находится в конце «0,00 м», подтверждение принимает «0,00 м», , Когда «backspace» нажата, когда курсор находится в конце «0,00_m», подтверждение принимает «0,00__m» Когда «backspace» нажата, когда курсор находится в конце «0,00_mm», подтверждение принимает « 0,00_m_mm "
В чем причина такого поведения и как его преодолеть?
# coding=utf-8
from PyQt5 import QtWidgets
class SpinBox(QtWidgets.QDoubleSpinBox):
def __init__(self):
super().__init__()
def validate(self, text, index):
res = super().validate(text, index)
print(text, res, self.text())
return res
if __name__ == "__main__":
q_app = QtWidgets.QApplication([])
sb = SpinBox()
sb.setSuffix(" m")
sb.show()
q_app.exec_()