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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Свой класс QlineEdit  (Прочитано 2449 раз)
Александр1988
Гость
« : Июль 09, 2018, 14:49 »

Добрый день!
Прошу помочь разобраться с проблемой.

Пишу приложение, в котором присутствуют множество виджетов QLineEdit(). Причем в каждом таком элементе присутствует некоторое ограничение на ввод символов. Это или номер авто, или телефон и т.д.

Идея состоит в том, чтобы реализовать собственный класс наследующий QLineEdit(), имеющий в себе ограничение на ввод символов. Вот пример:

Код:
from PySide.QtGui import *
from PySide.QtCore import *

class Line_edit_number(QLineEdit):

    def __init__(self, *args, **kwargs)
        super().__init__(*args, **kwargs)
        self.r = QRegExp(r"[А-Я]\d\d\d[А-Я][А-Я]\d\d\d")
        self.setValidator(QRegExpValidator(self.r))
        self.setMaxLength(9)


Если убрать строчки
Код:
elf.r = QRegExp(r"[А-Я]\d\d\d[А-Я][А-Я]\d\d\d")
self.setValidator(QRegExpValidator(self.r))
, ограничение по длине текста работает.

Если тоже регулярное выражение задать обычному QLineEdit, все прекрасно работает.

Почему при определении данных свойств в классе ограничение по длине вводимого текста работает, а регулярка нет?



« Последнее редактирование: Июль 09, 2018, 14:54 от Александр1988 » Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Июль 10, 2018, 10:04 »

maxLength : int
This property holds the maximum permitted length of the text
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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