Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: очищаемый SpinBox
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
Sokoloff
Потребовалось мне написать на питоне SpinBox для ввода года, но нужна возмозность не указывать ничего, т.е. если человек сотрет весь текст, то поле редактирования в spinbox-е должно оставаться пустым. Вроде все работает, но хочется проконсультироваться, правильно я сделал, или есть более прямые пути?

class YearSpinBox(QtGui.QSpinBox):

    def __init__(self, parent=None):
        QtGui.QSpinBox.__init__(self, parent)
        
    def textFromValue(self, value):
        if (value == self.minimum()):
          return QtCore.QString("")
        else:  
          return QtGui.QSpinBox.textFromValue(self, value)
      
    def validate(self, text, pos):
        if (text == ''):
            self.setValue(self.minimum())
            return (QtGui.QValidator.Acceptable, pos)
            
        return QtGui.QSpinBox.validate(self, text, pos)
SABROG
Я не нашел. Имхо прямее некуда, даже Assistant предлагает такой вариант. Можно конечно поизвращаться с valueChanged + specialTextValue, а там вместо пустой строки ставить что-то типа "No value".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.