Шаг 106.
Библиотека PyQt5.
Основные компоненты. Однострочное текстовое поле. Ввод данных по маске
На этом шаге мы рассмотрим особенности реализации такого ввода.
С помощью метода setInputMask(<Macкa>) можно ограничить ввод символов допустимым диапазоном значений. В качестве параметра указывается строка, имеющая следующий формат:
"<Последовательность символов>[;<Символ-заполнитель>]"
В первом параметре указывается комбинация из следующих специальных символов:
- 9 - обязательна цифра от 0 до 9;
- 0 - разрешена, но не обязательна цифра от 0 до 9;
- D - обязательна цифра от 1 до 9;
- d - разрешена, но не обязательна цифра от 1 до 9;
- B - обязательна цифра 0 или 1;
- b - разрешена, но не обязательна цифра 0 или 1;
- H - обязателен шестнадцатеричный символ (0-9, A-F, a-f);
- h - разрешен, но не обязателен шестнадцатеричный символ (0-9, A-F, a-f);
- # - разрешена, но не обязательна цифра, знак плюс или минус;
- А - обязательна буква в любом регистре;
- а - разрешена, но не обязательна буква;
- N - обязательна буква в любом регистре или цифра от 0 до 9;
- n - разрешена, но не обязательна буква или цифра от 0 до 9;
- X - обязателен любой символ;
- х - разрешен, но не обязателен любой символ;
- > - все последующие буквы переводятся в верхний регистр;
- < - все последующие буквы переводятся в нижний регистр;
- ! - отключает изменение регистра;
- \ - используется для отмены действия спецсимволов.
Все остальные символы трактуются как есть. В необязательном параметре <Символ-заполнитель> можно указать символ, который будет
отображаться в поле, обозначая место ввода. Если параметр не указан, заполнителем будет служить пробел. Пример:
lineEdit.setInputMask("Дата: 99.B9.9999;_") # Дата: __.__.____
lineEdit.setInputMask("Дата: 99.B9.9999;#") # Дата: ##.##.####
lineEdit.setInputMask("Дата: 99.В9.9999 г.") # Дата: . . г.
Проверить соответствие введенных данных маске позволяет метод hasAcceptableInput(). Если данные соответствуют маске, то метод возвращает
значение True, а в противном случае - False.
На следующем шаге мы рассмотрим контроль ввода.
Предыдущий шаг
Содержание
Следующий шаг