Здравствуйте, гость ( Вход | Регистрация )
lanz | Дата 21.1.2015, 0:09 |
Цитата Ну, как вариант, не давать лайнэдиту терять фокус пока не введены корректные данные Запросто http://qt-project.org/doc/qt-4.8/qwidget.html#focusOutEvent Можно проверять валидатор и ресетить фокус. А если юзер хочет пока не вводить это поле а ввести другое? Если он хочет переключить фокус, а сюда случайно кликнул и вы его там залочили пока он не введет правильно? "Ну тупой виндовс, идиоты в майкросовте опять все по дебильному сделали !!!111ОДИНОДИН" Цитата а на деле получается, что он принимает целые от 0 до максимума. Не понятно. Что, он возвращает Acceptable для целых меньше minimum? Пример из документации: Цитата This virtual function returns Invalid if input is invalid according to this validator's rules, Intermediate if it is likely that a little more editing will make the input acceptable (e.g. the user types "4" into a widget which accepts integers between 10 and 99), and Acceptable if the input is valid. |
|
borune | Дата 20.1.2015, 22:20 |
Тогда будет разрешено удаление чисел, но lineEdit будет пропускать пустые строки как валидные. ну не вариант, нельзя пустое оставлять)Перед сабмитом просто проверяйте что валидатор возвращает Valid. Ну это неинтересно=) в этом случае придется выдавать сообщение пользователю о том, что он что-то где-то неверно ввел, и просить откорректировать введенные данные, а если пользователь попадется не очень умный, то это сообщение может поставить его в тупик. Поэтому хотелось бы реализовать все так, чтоб у пользователя просто не было возможности ввести неверное значение.Разве это возможно? Как вы введете число например 14 не вводя 1 или 4? Ну, как вариант, не давать лайнэдиту терять фокус пока не введены корректные данные. Просто в документации явно сказано Раскрывающийся текст QIntValidator::QIntValidator ( int minimum, int maximum, QObject * parent = 0 ) Constructs a validator with a parent, that accepts integers from minimum to maximum inclusive. |
|
lanz | Дата 20.1.2015, 19:53 |
Разве это возможно? Как вы введете число например 14 не вводя 1 или 4? Перед сабмитом просто проверяйте что валидатор возвращает Valid. |
|
ilyabvt | Дата 20.1.2015, 18:39 |
Можно добавить в начале метода validate строку:
Тогда будет разрешено удаление чисел, но lineEdit будет пропускать пустые строки как валидные. |
|
borune | Дата 20.1.2015, 17:36 |
Судари, приветствую всех. Сабж таков, не могу настроить минимальное значение QIntValidator'а. Делаю так: Раскрывающийся текст
В таком варианте валидатор разрешает вводить числа в диапазоне [0-20]. Не устраивает. Нужен диапазон [5;20] Почитал тут. Попробовал перегрузить метод validate: Раскрывающийся текст
Этот вариант запрещает вводить цифры 1,2,3,4. Остальные цифры вводить можно, но нельзя их потом удалить. Еще хуже, чем в первом варианте. Подскажите, как все-таки заставить валидатор видеть минимум? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 7:48 |