crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> очищаемый SpinBox
Sokoloff
  опции профиля:
сообщение 22.5.2009, 16:46
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

Спасибо сказали: 50 раз(а)




Репутация:   11  


Потребовалось мне написать на питоне 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
  опции профиля:
сообщение 23.5.2009, 16:58
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Я не нашел. Имхо прямее некуда, даже Assistant предлагает такой вариант. Можно конечно поизвращаться с valueChanged + specialTextValue, а там вместо пустой строки ставить что-то типа "No value".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 23.7.2019, 5:59