Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Fregloin от Декабрь 23, 2014, 14:42



Название: Валидация ввода QLineEdit
Отправлено: Fregloin от Декабрь 23, 2014, 14:42
Привет. Нужно сделать такой же функционал, как в креаторе когда вводится недопустимое значение в QLineEdit, его рамку нужно подсветить красным, а когда правильное - то рамку убрать.
Догадываюсь что нужно делать через QStyleSheet. С ним дела не имел честно говоря толком. Или есть другой способ?


Название: Re: Валидация ввода QLineEdit
Отправлено: gil9red от Декабрь 23, 2014, 14:50
Привет. Нужно сделать такой же функционал, как в креаторе когда вводится недопустимое значение в QLineEdit, его рамку нужно подсветить красным, а когда правильное - то рамку убрать.
Догадываюсь что нужно делать через QStyleSheet. С ним дела не имел честно говоря толком. Или есть другой способ?

Можно самому посмотреть (http://code.woboq.org/) как это в креаторе реализованно :)


Название: Re: Валидация ввода QLineEdit
Отправлено: Пантер от Декабрь 23, 2014, 14:54
Вот когда-то давным давно делал
https://github.com/panter-dsd/Bank/blob/master/src/adddialog.cpp
https://github.com/panter-dsd/Bank/blob/master/src/adddialog.h


Название: Re: Валидация ввода QLineEdit
Отправлено: Fregloin от Декабрь 23, 2014, 14:58
т.е. можно через палитру? надо будет попробовать, спасибо


Название: Re: Валидация ввода QLineEdit
Отправлено: Пантер от Декабрь 23, 2014, 15:00
Лучше и проще решения я тогда не нашел. :)


Название: Re: Валидация ввода QLineEdit
Отправлено: kambala от Декабрь 23, 2014, 15:33
стилями тоже легко. если ошибка, то
Код
C++ (Qt)
ui->lineEdit->setStyleSheet("QLineEdit { background-color: red }");
а в слоте изменения текста
Код
C++ (Qt)
ui->lineEdit->setStyleSheet("QLineEdit { background-color: white }");

P.S. otchLabel_, schetLabel_, … — как теперь это развидеть? :(


Название: Re: Валидация ввода QLineEdit
Отправлено: Пантер от Декабрь 23, 2014, 15:36
P.S. otchLabel_, schetLabel_, … — как теперь это развидеть? :(
Бггг. Я эту прогу писал году так в 2008-2009. :)


Название: Re: Валидация ввода QLineEdit
Отправлено: Johnik от Декабрь 24, 2014, 07:30
Еще вариант: сделать свое динамическое свойство типа isValid (boolean), а дальше, как в примере: http://qt-project.org/wiki/DynamicPropertiesAndStylesheets