Russian Qt Forum

Qt => Общие вопросы => Тема начата: AntonUfo от Декабрь 20, 2010, 16:07



Название: Помогите правильный написать правильный ввалидатор.....
Отправлено: AntonUfo от Декабрь 20, 2010, 16:07
Привет всем, хочется написать валидатор который разрешает ввод только цифр и знака пробела в любой последовательности, поначалу работал с таким вариантом, (такой вариант работает):

Код:
  QRegExp rxp1 = QRegExp(tr("(([\\d])+(\\s))+"));
  QRegExpValidator *SpisokValidator = new QRegExpValidator(rxp1,this);
   spisokEdit->setValidator(SpisokValidator);



но мне нужно что бы испускался сигнал Acceptable после проверки и потери фокуса ввода на QLineEdit а сигнал не испускается

Попробовал вот такой вариант:

Код:
virtual State validate(QString& str, int&) const
    {
        QRegExp rxp1 = QRegExp(tr("(([\\d])+(\\s))+"));
        if (str.contains(rxp1)) {
            return Invalid;
        }
        return Acceptable;
    }



сигнал испускает, но не работает валидация.... как написать правильно ?