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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExpValidator  (Прочитано 7448 раз)
hackoff
Гость
« : Март 25, 2010, 07:21 »

Пытаюсь сделать поле для ввода ip адресс. Благодаря гуглу сделал так:
Код:
    const QRegExp rxip("(?:1\d?\d?|2(?:[0-4]\d?|[6789]|5[0-5]?)?|[3-9]\d?|0)(?:\.(?:1\d?\d?|2(?:[0-4]\d?|[6789]|5[0-5]?)?|[3-9]\d?|0)){3}");
    txtAdress->setValidator(new QRegExpValidator(rxip,this));
Но сие чудо мысли к сожалению не работает. Помогите исправить ошибку и если можно небольшой ликбез по регулярным выражениям. А то что-то слишком замудрено..
Записан
dnc2rt
Гость
« Ответ #1 : Март 25, 2010, 08:16 »

Вот пример для ip:
Код:
QRegExp ipRegExp( "\\b(([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d?\\d|2[0-4]\\d|25[0-5])\\b" );

****->setValidator( new QRegExpValidator( ipRegExp, this ) );
Записан
hackoff
Гость
« Ответ #2 : Март 25, 2010, 08:43 »

спасибо за оперативный ответ. Все работает.

Как можно данный способ усовершенствовать, чтобы  пользователю не пришлось вводить точки. Т.е. изначально было "   .   .   .   ". А  пользователь вводит только цифры.
вариант setInputMask("000.000.000.000") не устраивает т.к. можно ввести 999.999.999.999.
Записан
alexman
Гость
« Ответ #3 : Март 25, 2010, 08:46 »

А если input mask и регулярное выражение?
Записан
hackoff
Гость
« Ответ #4 : Март 25, 2010, 09:12 »

пробовал. Тогда не вводятся данные.
Записан
dnc2rt
Гость
« Ответ #5 : Март 25, 2010, 10:32 »

Маска такая должна быть:

Код:
"000.000.000.000;0"

И будет счастье!
« Последнее редактирование: Март 25, 2010, 10:34 от dnc2rt » Записан
hackoff
Гость
« Ответ #6 : Март 27, 2010, 07:05 »

спасибо. Работает. А что означает ";0"? В хелпе не могу найти.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Март 27, 2010, 10:41 »

Это то, что будет показываться пока не введешь свои данные.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ilyagoo
Гость
« Ответ #8 : Май 24, 2010, 15:12 »

а кто-нибудь обратил внимание, что адрес 100.100.100.100 возвращается лайнэдитом как 1.1.1.1?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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