Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Наследование стилей

Автор: dimon1980ddd 4.1.2010, 13:56

С помощью styleSheet изменяем например цвет панели, закругляем края в итоге тоже самое происходит с дочерними элементами... Как от этого избавиться (не хотелось бы выставлять стиль по умолчанию для всех дочерних компонентов)?

Автор: QCasper 4.1.2010, 14:53

Например задать стиль по имени объекта.

В коде задаёте имя объекта:

QToolBar *db = new QToolBar(this);
db->setObjectName("DocBar");


А в стиле можно использовать его следующим образом:

QToolBar#DocBar { /* your style definition */ };

Автор: dimon1980ddd 4.1.2010, 17:07

Спасибо за ответ!
Действительно помогло....
Т.е. получается что мне нужно писать
app.setStyleSheet("QFrame#myName {background-color: rgb(0, 0, 255);}");
Вместо:
myName->setStyleSheet("background-color: rgb(0, 0, 255);"); ???
На мой взгляд не очень удобно... Имя поменялось - а ошибки компиляции нет...
Просто в QT Designer'e стили достаточно удобно выставлять - а так прийдется их в собсвенном коде указывать... Может есть еще способ?


Все разобрался просто еще можно и так:

    myName->setStyleSheet("QFrame {background-color: rgb(0, 0, 255);}");


Следовательно будет работать и в Qt Disegner'e

Еще раз спасибо за помощь - проблема решена...

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)