Russian Qt Forum
Апреля 26, 2025, 05:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как разрешить вводить в QLineEdit только латинские буквы и цифры?  (Прочитано 11912 раз)
Caduceus
Гость
« : Января 25, 2012, 23:21 »

Без переопределния класса QLineEdit.
Я так понимаю можно через регулятрые выражения и валидаторы?
Сделал вот так
Код:
QRegExp rx("[A-Za-z0-9]");
ui->NameEdit->setValidator (new QRegExpValidator (rx, this));
Не помогло - все равно ввожу что хочу
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Января 26, 2012, 00:02 »

4.8.0: у меня всё работает - разрешается ввод любой латинской буквы или цифры в количестве 1 шт.
Записан

Изучением 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
spirits25
Гость
« Ответ #2 : Января 26, 2012, 08:18 »

Без переопределния класса QLineEdit.
Я так понимаю можно через регулятрые выражения и валидаторы?
Сделал вот так
Код:
QRegExp rx("[A-Za-z0-9]");
ui->NameEdit->setValidator (new QRegExpValidator (rx, this));
Не помогло - все равно ввожу что хочу

Допустим надо не более 2-х символов только латинские буквы и цифры:
Код:
        two_words = QLineEdit()
        rx = QtCore.QRegExp ("^[a-zA-Z0-9]{0,2}$")
        two_words_validator = QtGui.QRegExpValidator(rx)
        two_words.setValidator(two_words_validator)
У меня норм всё. Ты регулярку ограничь ^ и $. Может в этом дело.
Записан
QtCoder
Гость
« Ответ #3 : Января 27, 2012, 06:33 »

[a-zA-Z0-9]*
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Января 27, 2012, 12:20 »

звёздочка тут никакой роли не играет. вариант с заключением между ^$ получше будет, хотя тоже сомневаюсь, что поможет автору.
Записан

Изучением 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
sudo
Гость
« Ответ #5 : Января 27, 2012, 17:55 »

Как QtCoder, собственно, и написал
Код:
lineEdit->setValidator(new QRegExpValidator(QRegExp("[A-Za-z\\d]+"), this));
Или не +, а звездочка, в данном случае разницы не будет

Рекомендую иметь на столе это http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/
Записан
spirits25
Гость
« Ответ #6 : Января 30, 2012, 14:16 »

а это
Код:
[a-zA-Z0-9]{0,2}
было не то же самое? или любое число - *, или конкретное, от этого не меняется особо ничего=)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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