Russian Qt Forum

Qt => QSS => Тема начата: romanick от Июнь 14, 2011, 09:20



Название: не хороший эффект со цветом tooltip
Отправлено: romanick от Июнь 14, 2011, 09:20
Возможно что-то делаю не так. Поправьте.
Цель - просто градиент на форме.
Решение:
Задал градиент в styleSheet:
Код:
background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(208, 208, 208, 255), stop:1 rgba(248, 248, 248, 255));
Однако тут же все дочерние виджеты тоже стали иметь такой градиент, чего совсем не надо. Ну ладно, поставил им всем такой styleSheet:
Код:
background-color: rgba(255, 255, 255, 0);
типа прозрачный, без фона.
Но тут следующая засада - тултипы этих виджетов стали сплошными чёрными квадратами. И как с этим бороться уже не понимаю.
Такое ощущение что я делаю совсем что-то не так...


Название: Re: не хороший эффект со цветом tooltip
Отправлено: ecspertiza от Июнь 14, 2011, 10:10
styleShet можно задать для отдельного класса для этого нужно написать что то типа

Код:
MyClass{
background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:0, y2:1, stop:0 rgba(208, 208, 208, 255), stop:1 rgba(248, 248, 248, 255));
}

либо для всех дочерних виджетов прописывать свои styleShet  ибо они наследуются от родителя


Название: Re: не хороший эффект со цветом tooltip
Отправлено: Polt от Июнь 15, 2011, 16:14
Дело в использовании селекторов при написании CSS.

селекторы

* - для всех вигетов
QWidget - для всех классов QWidget и подклассов
.QWidget - для всех классов QWidget
QWidget#name - для всех QWidget с object name = name

Пример:

CSS:
"QWidget#name{"
"background-color: #ffffff;}"

-------

QWidget * w = new QWidget(this);
w->setObjectName("name");

вигет w будет иметь белый фон