Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: pakulo от Август 05, 2007, 00:03



Название: Qt style sheets и свой виджет
Отправлено: pakulo от Август 05, 2007, 00:03
Создал свой виджет и хочу что бы к нему применялись стандартные листы стилей. При прорисовки виджета я использую готовые функции стилей. Т.е. у меня виджет на основе QWidget но при прорисовке вызываю методы указывая в параметрах стандартные, например QStyle::CE_CheckBox. Но листы стилей не применяются.
Это можно как-то исправить?


Название: Qt style sheets и свой виджет
Отправлено: Gryz от Август 05, 2007, 03:12
а каким образом используются style sheets?
Я столкнулся с проблемой, что они в общем случае не применимы к произвольным классам, а только к конкретному ограниченному множеству классов qt.


Название: Qt style sheets и свой виджет
Отправлено: pakulo от Август 05, 2007, 09:12
Цитата: "Gryz"
а каким образом используются style sheets?
Я столкнулся с проблемой, что они в общем случае не применимы к произвольным классам, а только к конкретному ограниченному множеству классов qt.

ой, это очень плохо... прийдется их класс переписать :)

Я создал свой виджет, скажем так
class MyInput: public QWidget {}

MyInput input;
input.setStyleSheet("...");

В классе MyInput я вызываю стандартную функцию
painter.drawControl(CE_CheckBox , inputOption);

но оно не вызывает метод с листов стилей, а вызывает с QWindowStyle.
По логике вищей оно должно вызывать сначала с листов стилей а потом уже класы...


Название: Qt style sheets и свой виджет
Отправлено: Gryz от Август 07, 2007, 11:44
Попробуй в style sheet задать правила вида QWidget#objectName {}
Правда, это не очень гибкое решение.

Вообще, drawControl вызывается первоначально у QStyleSheetStyle, если этот стиль установлен. Так что похоже этот стиль просто не смог распарсить передаваемую ему строку.


Название: Qt style sheets и свой виджет
Отправлено: pakulo от Август 08, 2007, 18:49
писал, не помогает (((
может что не так делаю, но вроде все правильно. Пока сделал по-другому, но может у кого какие идеи есть?