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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Проверка ввода - валидатор  (Прочитано 16229 раз)
Germiona
Гость
« : Май 21, 2008, 13:01 »

Доброго времени суток  Улыбающийся

Господа,может кто-нибудь уже создавал проверку ввода (валидатор) на IP адрес в строке ввода LineEdit Строит глазки Маску то легко установить,а вот проверять диапазон от 0 до 255....

Поделитесь,плиз...
« Последнее редактирование: Май 21, 2008, 13:02 от Germiona » Записан
em
Гость
« Ответ #1 : Май 21, 2008, 14:49 »

хм в Qt знак отмены \ не понимается почему-то... тогда получается не отменишь специальное значение для точки (типа \.)!
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Май 21, 2008, 14:55 »

не в Qt, а в Си, пиши так: \\.
Записан

Юра.
uriel
Гость
« Ответ #3 : Май 21, 2008, 15:14 »

Можно через QRegExpValidator с выражением "\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b".
Записан
Germiona
Гость
« Ответ #4 : Май 21, 2008, 15:21 »

Спасибо большое  Улыбающийся Попробую
Записан
em
Гость
« Ответ #5 : Май 21, 2008, 16:00 »

не в Qt, а в Си, пиши так: \\.
Ах точно =)))

Можно через QRegExpValidator с выражением "\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b".
ага работает)
Записан
Germiona
Гость
« Ответ #6 : Май 29, 2008, 16:27 »

Цитировать
Можно через QRegExpValidator с выражением "\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b".

Хм....а почему валидатор с этим отображением не хочет работать вместе с маской?

Код:
setInputMask("000.000.000.000;_");

Нельзя что ли одновременно и маску и валидатор использовать? хотелось бы чтобы разделительные точки не стирались и не удалялись
Записан
uriel
Гость
« Ответ #7 : Май 29, 2008, 17:54 »

В ассистенте написано:
Код:
To get range control (e.g. for an IP address) use masks together with validators.
Так что в идеале должно работать...
Записан
Germiona
Гость
« Ответ #8 : Май 30, 2008, 09:45 »

Цитировать
В ассистенте написано:
Код:

To get range control (e.g. for an IP address) use masks together with validators.

Так что в идеале должно работать...

Это я тоже читала...однако не работает  Грустный
Выражение QRegExpValidator-а другим каким-то должно быть,если установлена уже маска вида: ___.___.___.___ Непонимающий
« Последнее редактирование: Май 30, 2008, 09:47 от Germiona » Записан
BRE
Гость
« Ответ #9 : Май 30, 2008, 09:53 »

Цитировать
В ассистенте написано:
Код:

To get range control (e.g. for an IP address) use masks together with validators.

Так что в идеале должно работать...

Это я тоже читала...однако не работает  Грустный
Выражение QRegExpValidator-а другим каким-то должно быть,если установлена уже маска вида: ___.___.___.___ Непонимающий
Попробуй маску установить не с подчеркиваниями, а с нулями например. ИМХО маска по валидатору не валидная.
Записан
chipset
Гость
« Ответ #10 : Май 30, 2008, 10:15 »

Что то вроде такого
QRegExp regIp("[0-9]{,3}\\.[0-9{,3}\\.[0-9]{,3}\\.[0-9]{,3}]");
Записан
Germiona
Гость
« Ответ #11 : Май 30, 2008, 10:43 »

Ничего не получаеца (((((((

Даже если устанавливаю валидатор на любой символ при установленной маске (даже только с нулями,без пробелов) ни один символ не вводиться  В замешательстве Придеться без маски  Плачущий
Записан
BRE
Гость
« Ответ #12 : Май 30, 2008, 11:07 »

Ничего не получаеца (((((((

Даже если устанавливаю валидатор на любой символ при установленной маске (даже только с нулями,без пробелов) ни один символ не вводиться  В замешательстве Придеться без маски  Плачущий

А у меня все работает.  Подмигивающий
Код:
QLineEdit *m_ip = ...;
m_ip->setInputMask( "000.000.000.000;0" );
QRegExp rx( "\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b" );
m_ip->setValidator( new QRegExpValidator( rx, this ) );
Записан
Germiona
Гость
« Ответ #13 : Май 30, 2008, 13:21 »

Пишу один в один....но не работает
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #14 : Май 30, 2008, 14:34 »

может в Qt3.x это как-то иначе?
Записан

Юра.
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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