Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Наследование от QWidget проблемы CSS


Автор: petroline 14.9.2013, 10:06
Создаю свой класс на основе QWidget

fmmenupanel.h

Код

#ifndef FMMENUPANEL_H
#define FMMENUPANEL_H
#include <QWidget>

class FmMenuPanel : public QWidget
{
    Q_OBJECT

public:
    explicit FmMenuPanel(QWidget *parent = 0);
};

#endif // FMMENUPANEL_H


fmmenupanel.cpp

Код

#include "fmmenupanel.h"

FmMenuPanel::FmMenuPanel(QWidget *parent) :
    QWidget(parent)
{
}


Добавляю в файл стилей

/* Панель меню на форме */
#menuWidget{
   background-color: rgb(0, 0, 0);
}

/* Класс панели меню */
FmMenuPanel{
    background-color: rgb(0, 0, 0);
}

* Описание в классе css два раза умышленно: один раз для всего класса, другой для конкретного наследника класса на форме

Почему не применяются стили к наследнику ? (ни к самомоу классу ни к контролу на основе его на форме...)
Если создаю контрол на основе menuWidget, все Ок..

При чем, не срабатывает да же если я непосредственно в свойстве menuWidget.styleSheet прописываю background-color: rgb(0, 0, 0);

Какая-то фишка есть ? Или это вообще невозможно для наследников QWidget ? СОздавал свои контролы на основе QPushButton или QLineEdit... всё отлично срабатывает, стили применяются...

Автор: math64 16.9.2013, 08:38
Попробуй так:
Код

FmMenuPanel::FmMenuPanel(QWidget *parent) :
    QWidget(parent)
{
    setAttribute(Qt::WA_StyledBackground, true);
}

Автор: petroline 17.9.2013, 11:35
Цитата(math64 @ 16.9.2013,  12:38)
Попробуй так:
Код

FmMenuPanel::FmMenuPanel(QWidget *parent) :
    QWidget(parent)
{
    setAttribute(Qt::WA_StyledBackground, true);
}

Так там же кроме заливки еще может чего быть... Я к чему... т.е. такая проблема присутствует ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)