Russian Qt Forum

Qt => QSS => Тема начата: registrationfedser87 от Февраль 20, 2009, 08:50



Название: Проблема с styleSheet
Отправлено: registrationfedser87 от Февраль 20, 2009, 08:50
Есть класс наследник от QFrame. На нём располагаются другие виджеты(QLabel и т.д.). Я хочу установить градиентный фон родительского виджета (т.е. QFrame), но только у родительского,чтобы у других он остался чтобы у других он остался прежним. Для этого к родительскому виджету применяю стиль:
Код
C++ (Qt)
this->setStyleSheet(".QFrame{background-color: qlineargradient(x1: 1, y1: 0, x2: 0, y2: 1, stop: 0 rgb(198, 236, 253), stop: 1.0 rgb(255,255,255));}");
т.е. этим стилем я указываю чтобы он применялся только к виджетам типа QFrame. Но в итоге он не применяется. Хотя если в Qt Designer применить к родительскому виджету стиль он работает как надо,но при добавлении форму в класс оне не работает.
Так же этот код работает если я буду создавать виджет вручную где то в программе и потом применять к нему стиль,но мне нужно чтобы стиль применялся внутри конструктора или хотя при наследовнии от формы.


Название: Re: Проблема с styleSheet
Отправлено: Rcus от Февраль 20, 2009, 09:06
http://doc.trolltech.com/4.4/stylesheet-syntax.html#selector-types
Цитировать
Type Selector   QPushButton   Matches instances of QPushButton and of its subclasses.
..
Class Selector   .QPushButton   Matches instances of QPushButton, but not of its subclasses.
This is equivalent to *[class~="QPushButton"].
/*yawn*/


Название: Re: Проблема с styleSheet
Отправлено: registrationfedser87 от Февраль 20, 2009, 09:11
как я понял,точка перед названием класса указывает что стиль нужно применять только непосредственно к виджетам этого класса(в моём случае QFrame), но не к наследникам,то есть если QLabel наследуется от QFrame,то к нему всё равно не будет применятся стиль если указать точку,но у меня так и указано:
Код
C++ (Qt)
this->setStyleSheet(".QFrame{background-color: qlineargradient(x1: 1, y1: 0, x2: 0, y2: 1, stop: 0 rgb(198, 236, 253), stop: 1.0 rgb(255,255,255));}");


Название: Re: Проблема с styleSheet
Отправлено: Rcus от Февраль 20, 2009, 09:38
Цитировать
Есть класс наследник от QFrame. На нём располагаются другие виджеты(QLabel и т.д.).

хм?


Название: Re: Проблема с styleSheet
Отправлено: registrationfedser87 от Февраль 20, 2009, 09:48
Спасибо,помогло! И в самом деле-я не учёл что мой класс уже не типа QFrame и к нему уже стиль не применяется