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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не могу разобраться с "масками" полей ввода  (Прочитано 3421 раз)
Atronah
Гость
« : Октябрь 04, 2009, 22:35 »

При разработке приложения потребовалось ограничить поле ввода (Line Edit) только числами (положительные и отрицательные). Сначала попытался сделать это через окно свойств объекта в интерфейсе Qt Designer. Не вышло, пробовал подставлять в поле disambiguation маску (#0009) и напрямую и в кавычках, не помогло.
Сделал программно, при запуске приложения (ui->edt1->setInputMask("#0009")), получилось. Но возникла другая проблема:
В справке Qt написано, что "#" - необязательные числа и знаки +/-, а "0" - это необязательные числа. Так вот на практике, что "0", что "#" позволяют на их место вводить еще и пробел, поэтому для указанной маски будет нормальным текст "3 42", т.е. с пробелом (хотя при проверке введенного текста через синхронную Сигнал-Слот привязку к QLabel видно что пробелы не учитываются). Так же, в добавок к этому, после запуска и перевода курсора в Edit, как то все не эстетично отображается (понятней объяснить не могу).
Мои конкретные вопросы:
1. Как через интерфейс дезайнера можно установить маску (не существенно, но интересно, что не так делаю).
2. Как сделать более красивый ввод нужных мне значений в Edit средствами Qt, а не собственными?
Записан
SimpleSunny
Гость
« Ответ #1 : Октябрь 05, 2009, 08:30 »

2. QIntValidator или QRegExpValidator смотря какой размер числа.
QLineEdit.setValidator()
« Последнее редактирование: Октябрь 05, 2009, 08:32 от SimpleSunny » Записан
Aleksey_Zh
Гость
« Ответ #2 : Октябрь 05, 2009, 15:31 »

Можно просто перехватить события клавиатуры на этот компонент и ненужные отсеять...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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