Russian Qt Forum

Qt => Общие вопросы => Тема начата: kadr от Июль 28, 2009, 20:32



Название: Запрет на ввод определенных символов
Отправлено: kadr от Июль 28, 2009, 20:32
Привет все, у меня есть вопрос, подскажите как в QT сделать так что бы в строку LineEdit можно было вводить только определенные символы, например только цифры, а буквы не вводились!  ???


Название: Re: Запрет на ввод определенных символов
Отправлено: Rcus от Июль 28, 2009, 20:38
#include <QtGui/QValidator>
#include <QtGui/QIntValidator>

#include <Assistant/QValidator>
//thread


Название: Re: Запрет на ввод определенных символов
Отправлено: kadr от Июль 28, 2009, 20:55
И что это означает, зачем мне это подключать?  ???


Название: Re: Запрет на ввод определенных символов
Отправлено: BRE от Июль 28, 2009, 20:57
И что это означает, зачем мне это подключать?  ???
Почитай в assistant про QValidator.  ;)

... и глянь еще на QLineEdit::setInputMask( const QString & inputMask ).


Название: Re: Запрет на ввод определенных символов
Отправлено: kadr от Июль 28, 2009, 21:24
Почитал справну, очень мало информации, ни примеров ничего что бы могло понять как этот валидатор использовать, может если кто использовал сбросит кусочик кода, я посмотрю, на примере понятнее будет!


Название: Re: Запрет на ввод определенных символов
Отправлено: BRE от Июль 28, 2009, 21:25
Почитал справну, очень мало информации, ни примеров ничего что бы могло понять как этот валидатор использовать, может если кто использовал сбросит кусочик кода, я посмотрю, на примере понятнее будет!

Line Edits Example


Название: Re: Запрет на ввод определенных символов
Отправлено: Rcus от Июль 28, 2009, 21:31
Вы читали документацию по QValidator? Там все настолько подробно расписано... и ссылка на пример есть, там кода достаточно
/* Удивляюсь порой, может у меня магический ассистант - в столько всего, разве что нет ответов на вопросы типа почему в qpaintengine_x11.cpp закоментирована строка features |= QPaintEngine::LinearGradient;*/


Название: Re: Запрет на ввод определенных символов
Отправлено: kadr от Июль 28, 2009, 22:10
Пишу значит setInputMask("9999999") а он мне не позволяет вводить сразу 7 символов, сначало вводит первый символ от 0 до 9, буквы запрещает вводить, потом надо нажать на клаве стрелку вправо, курсор переходит на след позицию, только вводишь след цифру, она сразу перескакивает на первую позицию, и опять надо уже нажимать стрелку 2 раза вправо, и снова такая же фигня повторяется, что это глюк или так и должно быть?  ???


Название: Re: Запрет на ввод определенных символов
Отправлено: _OLEGator_ от Июль 28, 2009, 22:15
Если не ошибаюсь, для установки ввода только цифр:
Код
C++ (Qt)
QLineEdit::setValidator(QRegExpValidator("\\d+"));
setInputMask - это маска ввода, если например надо сразу установить "-" при вводе даты, читай внимательнее документацию...


Название: Re: Запрет на ввод определенных символов
Отправлено: kadr от Июль 28, 2009, 22:29
Если не ошибаюсь, для установки ввода только цифр:
Код
C++ (Qt)
QLineEdit::setValidator(QRegExpValidator("\\d+"));
setInputMask - это маска ввода, если например надо сразу установить "-" при вводе даты, читай внимательнее документацию...
Это не работает, пишет что не может найти функции для обработки, ладно впринципе я с setInputMask разобрался, я просто его не туда поставил, сейчас вроде нормуль работает! Спасибо за помощь!  ;)


Название: Re: Запрет на ввод определенных символов
Отправлено: BRE от Июль 28, 2009, 22:34
Это не работает, пишет что не может найти функции для обработки, ладно впринципе я с setInputMask разобрался, я просто его не туда поставил, сейчас вроде нормуль работает! Спасибо за помощь!  ;)
Просто new был пропущен:
Код
C++ (Qt)
QLineEdit::setValidator(new QRegExpValidator("\\d+"));
:)


Название: Re: Запрет на ввод определенных символов
Отправлено: _OLEGator_ от Июль 28, 2009, 22:42
kadr: еще раз - читай документацию и читай внимательно, пропуск new уже вызывает большие непонятки, достаточно глянуть на ошибку и в доку...
И то что работает, а как работает - непонятно, не есть выход :)
Лучше один раз потратить в ремя и разобраться, чем потом использовать то, что непонятно как работает


Название: Re: Запрет на ввод определенных символов
Отправлено: SASA от Июль 29, 2009, 14:44
/* Удивляюсь порой, может у меня магический ассистант - в столько всего, разве что нет ответов на вопросы типа почему в qpaintengine_x11.cpp закоментирована строка features |= QPaintEngine::LinearGradient;*/
;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D