Название: setStyleSheet для самого себя Отправлено: Alp от Май 31, 2010, 14:57 Есть виджет QMyWidget : public QWidget, хочу настроить его с помощью вот такой CSS:
Код Однако при вызове mywidget->setStyle(mystyle) стиль применяется к детям моего виджета, но не к нему самому. Как установить стиль непосредственно у виджета без уродливых конструкций типа qobject_cast<QWidget*>(mywidget->parent())->setStyleSheet()? Почему не применяю к родительскому виджету таблицу стилей? Потому, что мне надо в процессе работы менять стили у того или иного виджета. UPD: Добавил тестовый проект, в котором видно то, что я хочу. Название: Re: setStyleSheet для самого себя Отправлено: registrationfedser87 от Май 31, 2010, 15:09 Код
Название: Re: setStyleSheet для самого себя Отправлено: Alp от Май 31, 2010, 15:20 Код
Название: Re: setStyleSheet для самого себя Отправлено: registrationfedser87 от Май 31, 2010, 15:33 Если смотреть по справке, то должно было помочь(мне по крайней мере помогло). Попробуй какие нибудь из следующих:
Код
Название: Re: setStyleSheet для самого себя Отправлено: Alp от Май 31, 2010, 15:35 Если смотреть по справке, то должно было помочь(мне по крайней мере помогло). Попробуй какие нибудь из следующих: Пробовал. Проблема в том, что все эти ограничения, фильтры и прочая муть прекрасно работают, но только, мать их, для потомков того, для кого был вызван setStyleSheet.Код
Название: Re: setStyleSheet для самого себя Отправлено: BRE от Май 31, 2010, 15:50 Как называется класс твоего виджета?
Укажи его: Код: MyWidget { ... } Название: Re: setStyleSheet для самого себя Отправлено: Alp от Май 31, 2010, 15:52 Решено:
QWidget::paintEvent пустой. Если вставить (как написано в доке) следующий код: Код Проблема исчезает. Вопрос теоретического плана: что мешало добавить это код в QWidget сразу же, если он ничего не делает при отсутствии таблицы стилей? Название: Re: setStyleSheet для самого себя Отправлено: Kolobok от Май 31, 2010, 16:01 Наследуйся от QFrame
Название: Re: setStyleSheet для самого себя Отправлено: Alp от Май 31, 2010, 16:12 Наследуйся от QFrame Этот вариант уже рассмотрел. Не хочется давать лишние методы типа установки типа фрейма. Имхо лучше наследоваться от минимально допустимого уровня. |