Название: Не могу разобраться с "масками" полей ввода Отправлено: 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, а не собственными? Название: Re: Не могу разобраться с "масками" полей ввода Отправлено: SimpleSunny от Октябрь 05, 2009, 08:30 2. QIntValidator или QRegExpValidator смотря какой размер числа.
QLineEdit.setValidator() Название: Re: Не могу разобраться с "масками" полей ввода Отправлено: Aleksey_Zh от Октябрь 05, 2009, 15:31 Можно просто перехватить события клавиатуры на этот компонент и ненужные отсеять...
|