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

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

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Нестандартный QLineEdit  (Прочитано 19245 раз)
alexman
Гость
« Ответ #15 : Сентябрь 21, 2011, 15:25 »

Попробуй этот вариант:
Код:
"(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])"
Записан
Larry
Гость
« Ответ #16 : Сентябрь 21, 2011, 15:53 »

тоже самое, нули отсекаются....
Записан
alexman
Гость
« Ответ #17 : Сентябрь 21, 2011, 16:07 »

Попробуй m_leStrIP->setInputMask("000.000.000.000;");
?
Записан
Larry
Гость
« Ответ #18 : Сентябрь 21, 2011, 16:11 »

так работает:)...тогда еще вопрос, как в QLineEdit сделать размер окна по размеру текста?
Записан
Larry
Гость
« Ответ #19 : Сентябрь 21, 2011, 16:33 »

Туплю что-то, по последнему пункту уже сделал...спасибо большое всем откликнувшимся:)
Записан
andrew.k
Гость
« Ответ #20 : Сентябрь 21, 2011, 16:51 »

Код:
m_leStrIP->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" );
QRegExpValidator *validator = new QRegExpValidator(QRegExp(rx), m_leStrIP);
m_leStrIP->setValidator(validator);

Вот что получилось, но при этом новая проблема возникла:
Код:
m_leStrIP->text();
выдает, н-р 11.11.2.1, если было введено 110.101.200.001, т.е. глотает все нули. Как исправить?
От лукавого эти маски)

У меня маска одновременно с валидатором не работает. Как только добавляю маску валидатор перестает работать.
и я могу вводить 999.999.999.999 например. А мой валидатор позволяет только 255.255.255.255.
Хотя в ассистенте написано, что должны работать одновременно.
Почему так?
« Последнее редактирование: Сентябрь 21, 2011, 16:53 от andrew.k » Записан
alexman
Гость
« Ответ #21 : Сентябрь 21, 2011, 17:36 »

Ну у Larry же работает!
Записан
Larry
Гость
« Ответ #22 : Сентябрь 21, 2011, 17:41 »

у меня работает, только если задать маску вида 000.000.000.000; в остальных случаях нет:)
Записан
andrew.k
Гость
« Ответ #23 : Сентябрь 21, 2011, 17:45 »

у меня работает, только если задать маску вида 000.000.000.000; в остальных случаях нет:)
какой ты регэксп использовал в итоге?

Дай целиком кусок кода.
Записан
Larry
Гость
« Ответ #24 : Сентябрь 21, 2011, 17:54 »

у меня работает, только если задать маску вида 000.000.000.000; в остальных случаях нет:)
какой ты регэксп использовал в итоге?

Дай целиком кусок кода.
Код:
QRegExp rx( "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])" );
QRegExpValidator *validator = new QRegExpValidator(QRegExp(rx), m_leStrInIP);
m_leStrInIP->setValidator(validator);
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #25 : Сентябрь 21, 2011, 18:34 »

точку надо через \\.

а вообще страшновато выглядит Улыбающийся можно хотя бы одинаковую часть вынести в отдельную переменную.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
FalconHAM
Гость
« Ответ #26 : Сентябрь 22, 2011, 09:07 »

А если так?
   
Код:
QRegExp re("([0-2]?[0-5]?[0-5]\\.){3}[0-2]?[0-5]?[0-5]");
« Последнее редактирование: Сентябрь 22, 2011, 09:12 от FalconHAM » Записан
andrew.k
Гость
« Ответ #27 : Сентябрь 22, 2011, 09:36 »

у меня работает, только если задать маску вида 000.000.000.000; в остальных случаях нет:)
какой ты регэксп использовал в итоге?

Дай целиком кусок кода.
Код:
QRegExp rx( "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
  "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])" );
QRegExpValidator *validator = new QRegExpValidator(QRegExp(rx), m_leStrInIP);
m_leStrInIP->setValidator(validator);

Жестокий регэксп)
Ну так, а где установка маски? Я то говорил об одновременном использовании маски и валидатора.
Записан
alexman
Гость
« Ответ #28 : Сентябрь 22, 2011, 09:41 »

у меня работает, только если задать маску вида 000.000.000.000; в остальных случаях нет:)
какой ты регэксп использовал в итоге?

Дай целиком кусок кода.
Код:
QRegExp rx( "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
 "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
 "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])."
 "(   |[0-9]  | [0-9] |  [0-9]|[0-9][0-9] | [0-9][0-9]|[0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])" );
QRegExpValidator *validator = new QRegExpValidator(QRegExp(rx), m_leStrInIP);
m_leStrInIP->setValidator(validator);

Жестокий регэксп)
Ну так, а где установка маски? Я то говорил об одновременном использовании маски и валидатора.
Читай внимательнее выше по тексту. Маска тоже устанавливается. Регэксп написан в спешке (если надо элегантнее, то допили).

Кстати ничего жесткого нет: Ctrl+C, далее Ctrl+V 3 раза Улыбающийся
« Последнее редактирование: Сентябрь 22, 2011, 09:48 от alexman » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #29 : Сентябрь 22, 2011, 09:43 »

Еще раз кину ссылку http://www.pcre.ru/eval/. Там можно тестить регекспы.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


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