elr*_*cbk 5 qt stylesheet qt-creator qtstylesheets
我正在尝试使用Qt样式表对标准小部件进行大量重新设计.因此,在#objectName选择器为不同的小部件手动完成大部分操作之后,我决定以某种方式对类似的小部件进行分组.
例如,我有多个QFrames像内部表单中的标题一样.我希望他们所有人都有相同的样式表.一种方法是使用命名约定(这是我的后备变体),即QFrame[objectName|="prefix_"].但我想按课程分组我的小部件.所以我创建了简单的占位符类:
class HeaderFrame: public QFrame
{
public:
HeaderFrame(QWidget *parent = NULL): QFrame(parent) {}
};
Run Code Online (Sandbox Code Playgroud)
这使我能够将所有这些推广QFrames到HeaderFrames.在那之后我尝试了设置
HeaderFrame { background-color: red; }
Run Code Online (Sandbox Code Playgroud)
样式表到MainWindow对象本身(使其对所有HeaderFrames起作用)但它不起作用.QtCreator表单设计器中没有任何更改,编译应用程序后没有任何更改.我尝试过这个样式表的不同变体,但没有任何效果.
那么,只有Qt小部件(如QLabel,QFrame等)可以通过这种方式进行样式化吗?或者有一些方法可以为您推荐的小部件编写样式表?
对的,这是可能的。您应该记住的唯一一件事 - 派生小部件的基础应该支持样式表,并仔细重新实现它们的 PaintEvent。
class Header1Label : public QLabel
{
Q_OBJECT
public:
using QLabel::QLabel;
};
Run Code Online (Sandbox Code Playgroud)
样式表:
class Header1Label : public QLabel
{
Q_OBJECT
public:
using QLabel::QLabel;
};
Run Code Online (Sandbox Code Playgroud)