crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QLineEdit и "умный" QValidator
RazrFalcon
  опции профиля:
сообщение 5.3.2012, 23:51
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Поставил валидатор на QLineEdit. Все работает, но есть большая проблема.
У меня в QRegExp("([0-9]{2} ){5}") есть пробелы, так вот - это не позволяет редактировать строку. Я могу только стереть ее и все... и мне самому приходится вводить пробелы.

Как сделать, что бы маска была сразу, то есть: 00 00 00 00 00, но я мог редактировать ее как хочу.
То есть при вводе 2-х символов сразу перескакивает на 4-й (то есть пропускает пробел).

Это можно как то реализовать стандартными средствами, или придется наследовать QLineEdit?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.3.2012, 7:17
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2901
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


нужно реагировать на каждое изменение позиции курсора - при этом "сгонять" с неправильных мест. Можно согласно контексту - к примеру, если сейчас нажали "вправо", согнать правее
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 6.3.2012, 8:09
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


У !LineEdit есть возможность установить маску, смотри на setInputMask. Возможно получиться это сделать с помощью маски.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.3.2012, 13:59
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


http://qt-project.org/doc/qt-4.8/qlineedit...#inputMask-prop

то что нужно!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.3.2012, 21:32
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Не то! :lol:

При:
lineEdit->setInputMask("HH HH HH HH;0");

нули не возвращаются...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dimix
  опции профиля:
сообщение 7.3.2012, 21:39
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 24.11.2010
Пользователь №: 2215

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(RazrFalcon @ 7.3.2012, 21:32) *
Не то! :lol:

При:
lineEdit->setInputMask("HH HH HH HH;0");

нули не возвращаются...


Без валидатора и масски
Сделай на сигнал textChanged() обработчик получай символы и там уже все что хочешь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2020, 2:59