Название: 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 писал, не помогает (((
может что не так делаю, но вроде все правильно. Пока сделал по-другому, но может у кого какие идеи есть? |