Russian Qt Forum
Июнь 09, 2024, 16:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Расскажите про QValidator?  (Прочитано 3081 раз)
White Owl
Гость
« : Июль 13, 2012, 21:51 »

Что-то я не очень понимаю смысл этого класса.
Это просто "умная" маска ввода или QValidator может что-то больше?

У меня сейчас задача: есть список слов. Пользователь должен вводить в текстовое поле только слова из списка, а слова не входящие в список не допускаются.
Как это сделать?
Пока, с чисто визуальной точки зрения, хочется красить красным цветом "плохие" слова и оставлять черным "хорошие", а на выходе из поля ввода убивать все "плохие" слова.
Может ли QValidator мне в этом помочь? Если нет, то как это сделать проще всего?
Записан
Странник
Гость
« Ответ #1 : Июль 14, 2012, 08:10 »

может. наследуетесь, переопределяете:
Цитировать
State QValidator::validate ( QString & input, int & pos ) const   [pure virtual]
если в вашем списке слов нет ничего, начинающегося на input, возвращаете QValidator::Invalid. если есть - QValidator::Intermediate. при полном совпадении - QValidator::Acceptable. что не устраивает-то?
Записан
andrew.k
Гость
« Ответ #2 : Июль 17, 2012, 22:20 »

Что-то я не очень понимаю смысл этого класса.
Это просто "умная" маска ввода или QValidator может что-то больше?

У меня сейчас задача: есть список слов. Пользователь должен вводить в текстовое поле только слова из списка, а слова не входящие в список не допускаются.
Как это сделать?
Пока, с чисто визуальной точки зрения, хочется красить красным цветом "плохие" слова и оставлять черным "хорошие", а на выходе из поля ввода убивать все "плохие" слова.
Может ли QValidator мне в этом помочь? Если нет, то как это сделать проще всего?

Не издевайся над пользователем, сделай комбобокс.
Записан
Странник
Гость
« Ответ #3 : Июль 17, 2012, 23:01 »

Не издевайся над пользователем, сделай комбобокс.
особенно удачное решение, если слов в списке пара тысяч.
Записан
andrew.k
Гость
« Ответ #4 : Июль 17, 2012, 23:08 »

Не издевайся над пользователем, сделай комбобокс.
особенно удачное решение, если слов в списке пара тысяч.
Тогда QCompleter
Гораздо удачнее вводить наугад неизвестно что.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.039 секунд. Запросов: 17.