Russian Qt Forum

Qt => Общие вопросы => Тема начата: Александр1988 от Июль 09, 2018, 14:49



Название: Свой класс QlineEdit
Отправлено: Александр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, все прекрасно работает.

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





Название: Re: Свой класс QlineEdit
Отправлено: Racheengel от Июль 10, 2018, 10:04
maxLength : int
This property holds the maximum permitted length of the text