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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Валидация ввода QLineEdit  (Прочитано 4919 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Декабрь 23, 2014, 14:42 »

Привет. Нужно сделать такой же функционал, как в креаторе когда вводится недопустимое значение в QLineEdit, его рамку нужно подсветить красным, а когда правильное - то рамку убрать.
Догадываюсь что нужно делать через QStyleSheet. С ним дела не имел честно говоря толком. Или есть другой способ?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Декабрь 23, 2014, 14:50 »

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

Можно самому посмотреть как это в креаторе реализованно Улыбающийся
Записан

Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Декабрь 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
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #3 : Декабрь 23, 2014, 14:58 »

т.е. можно через палитру? надо будет попробовать, спасибо
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Декабрь 23, 2014, 15:00 »

Лучше и проще решения я тогда не нашел. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #5 : Декабрь 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_, … — как теперь это развидеть? Грустный
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Декабрь 23, 2014, 15:36 »

P.S. otchLabel_, schetLabel_, … — как теперь это развидеть? Грустный
Бггг. Я эту прогу писал году так в 2008-2009. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #7 : Декабрь 24, 2014, 07:30 »

Еще вариант: сделать свое динамическое свойство типа isValid (boolean), а дальше, как в примере: http://qt-project.org/wiki/DynamicPropertiesAndStylesheets
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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