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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запрет на ввод определенных символов  (Прочитано 17131 раз)
kadr
Гость
« : Июль 28, 2009, 20:32 »

Привет все, у меня есть вопрос, подскажите как в QT сделать так что бы в строку LineEdit можно было вводить только определенные символы, например только цифры, а буквы не вводились!  Непонимающий
Записан
Rcus
Гость
« Ответ #1 : Июль 28, 2009, 20:38 »

#include <QtGui/QValidator>
#include <QtGui/QIntValidator>

#include <Assistant/QValidator>
//thread
Записан
kadr
Гость
« Ответ #2 : Июль 28, 2009, 20:55 »

И что это означает, зачем мне это подключать?  Непонимающий
Записан
BRE
Гость
« Ответ #3 : Июль 28, 2009, 20:57 »

И что это означает, зачем мне это подключать?  Непонимающий
Почитай в assistant про QValidator.  Подмигивающий

... и глянь еще на QLineEdit::setInputMask( const QString & inputMask ).
« Последнее редактирование: Июль 28, 2009, 21:23 от BRE » Записан
kadr
Гость
« Ответ #4 : Июль 28, 2009, 21:24 »

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

Почитал справну, очень мало информации, ни примеров ничего что бы могло понять как этот валидатор использовать, может если кто использовал сбросит кусочик кода, я посмотрю, на примере понятнее будет!

Line Edits Example
Записан
Rcus
Гость
« Ответ #6 : Июль 28, 2009, 21:31 »

Вы читали документацию по QValidator? Там все настолько подробно расписано... и ссылка на пример есть, там кода достаточно
/* Удивляюсь порой, может у меня магический ассистант - в столько всего, разве что нет ответов на вопросы типа почему в qpaintengine_x11.cpp закоментирована строка features |= QPaintEngine::LinearGradient;*/
Записан
kadr
Гость
« Ответ #7 : Июль 28, 2009, 22:10 »

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

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

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

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

kadr: еще раз - читай документацию и читай внимательно, пропуск new уже вызывает большие непонятки, достаточно глянуть на ошибку и в доку...
И то что работает, а как работает - непонятно, не есть выход Улыбающийся
Лучше один раз потратить в ремя и разобраться, чем потом использовать то, что непонятно как работает
« Последнее редактирование: Июль 28, 2009, 22:45 от _OLEGator_ » Записан
SASA
Гость
« Ответ #12 : Июль 29, 2009, 14:44 »

/* Удивляюсь порой, может у меня магический ассистант - в столько всего, разве что нет ответов на вопросы типа почему в qpaintengine_x11.cpp закоментирована строка features |= QPaintEngine::LinearGradient;*/
Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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