Russian Qt Forum
Ноябрь 05, 2024, 22:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt style sheets и свой виджет  (Прочитано 4081 раз)
pakulo
Гость
« : Август 05, 2007, 00:03 »

Создал свой виджет и хочу что бы к нему применялись стандартные листы стилей. При прорисовки виджета я использую готовые функции стилей. Т.е. у меня виджет на основе QWidget но при прорисовке вызываю методы указывая в параметрах стандартные, например QStyle::CE_CheckBox. Но листы стилей не применяются.
Это можно как-то исправить?
Записан
Gryz
Гость
« Ответ #1 : Август 05, 2007, 03:12 »

а каким образом используются style sheets?
Я столкнулся с проблемой, что они в общем случае не применимы к произвольным классам, а только к конкретному ограниченному множеству классов qt.
Записан
pakulo
Гость
« Ответ #2 : Август 05, 2007, 09:12 »

Цитата: "Gryz"
а каким образом используются style sheets?
Я столкнулся с проблемой, что они в общем случае не применимы к произвольным классам, а только к конкретному ограниченному множеству классов qt.

ой, это очень плохо... прийдется их класс переписать Улыбающийся

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

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

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

но оно не вызывает метод с листов стилей, а вызывает с QWindowStyle.
По логике вищей оно должно вызывать сначала с листов стилей а потом уже класы...
Записан
Gryz
Гость
« Ответ #3 : Август 07, 2007, 11:44 »

Попробуй в style sheet задать правила вида QWidget#objectName {}
Правда, это не очень гибкое решение.

Вообще, drawControl вызывается первоначально у QStyleSheetStyle, если этот стиль установлен. Так что похоже этот стиль просто не смог распарсить передаваемую ему строку.
Записан
pakulo
Гость
« Ответ #4 : Август 08, 2007, 18:49 »

писал, не помогает (((
может что не так делаю, но вроде все правильно. Пока сделал по-другому, но может у кого какие идеи есть?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 21.