Можно ли использовать таблицы стилей Qt с продвигаемыми виджетами в Qt Creator? - PullRequest
5 голосов
/ 30 июня 2011

Я пытаюсь переопределить стандартные виджеты, используя таблицы стилей Qt.Поэтому после выполнения большей части этого вручную для различных виджетов с помощью селекторов #objectName я решил каким-то образом сгруппировать похожие виджеты.

Например, у меня есть несколько QFrames, которые действуют как заголовки во внутренних формах.И я хочу, чтобы у всех них была одна и та же таблица стилей.Один из способов сделать это - использовать соглашение об именах (это мой запасной вариант), то есть QFrame[objectName|="prefix_"].Но я хотел сгруппировать свои виджеты по классу.Поэтому я создал простой класс заполнителей:

class HeaderFrame: public QFrame
{
public:
    HeaderFrame(QWidget *parent = NULL): QFrame(parent) {}
};

, который позволил мне продвинуть все эти QFrames до HeaderFrames.После этого я попытался установить таблицу стилей

HeaderFrame { background-color: red; }

для самого объекта MainWindow (чтобы он действовал на все HeaderFrames), но он не будет работать.В конструкторе форм QtCreator ничего не изменилось, и ничего не изменилось после компиляции приложения.Я пробовал разные варианты этой таблицы стилей, но ничего не работает.

Итак, доступны ли для стилевого оформления только виджеты Qt (например, QLabel, QFrame и т. Д.)?Или есть какой-нибудь способ написать таблицу стилей для вашего продвигаемого виджета?

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

да, это возможно. Единственное, что вы должны иметь в виду - база для ваших производных виджетов должна поддерживать таблицы стилей и тщательно переопределять их PaintEvent.

UPD: пример класс:

class Header1Label : public QLabel
{
    Q_OBJECT
    public:
    Header1Label(QWidget *parent = 0):QLabel(parent){};
    ~Header1Label(){};
};

таблица стилей:

Header1Label
{
    font-size:14px;
    font-weight:900;    
}
0 голосов
/ 21 декабря 2015

Вы всегда можете добавить class-name к свойству класса объекта, которым является QStringList, и использовать селектор .class-name.

...