Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: whirlwind от Июнь 18, 2009, 21:40



Название: как правильно использовать style sheets?
Отправлено: whirlwind от Июнь 18, 2009, 21:40
Мне нужно написать приложение с кнопками (и другими виджетами) разных цветов. В принципе, style sheets замечательно подходят, но не совсем :)
файл со стилями у меня в данный момент один. В нем конструкции вида

Код
CSS
QPushButton#green {
color : #00AA00
 ....
}

весь файл назначается для MainWindow. Потом, кнопка должна быть зеленой, делаю

Код
C++ (Qt)
button->setObjectName("green");

В принципе, все работает, но почему-то кажется, что авторы Qt предполагали, что этот механизм будет использоватся по-другому. Но как, я не знаю. Если использовать setStyleSeet для каждого виджета отдельно, прийдется где-то их хранить, загружать... тоже неудобно


Название: Re: как правильно использовать style sheets?
Отправлено: BRE от Июнь 18, 2009, 21:51
Если использовать setStyleSeet для каждого виджета отдельно, прийдется где-то их хранить, загружать... тоже неудобно

Самое простое, наверное:
Код
C++ (Qt)
button->setStyleSheet( "QPushButton { color : #00AA00  ....}" );


Название: Re: как правильно использовать style sheets?
Отправлено: whirlwind от Июнь 19, 2009, 14:09
Самое простое, наверное:
Код
C++ (Qt)
button->setStyleSheet( "QPushButton { color : #00AA00  ....}" );
это хардкод, а хардкод -- зло :) А если не хардкодить, значит надо заводить какой-то конфиг, в котором стили будут хранится, какой-то класс, который их загружать будет.. работы много


Название: Re: как правильно использовать style sheets?
Отправлено: Rcus от Июнь 19, 2009, 14:17
У QSS есть селекторы не только по классу и имени, но и по свойствам. Только в одном проблема: Oxygen и Bespine в цветовой схеме Obsidian Coast... да, это надо видеть :)