是否可以在Qt Creator中将Qt样式表与升级的小部件一起使用?
我正在尝试使用Qt样式表对标准小部件进行一些重大的重新设计。因此,在通过是否可以在Qt Creator中将Qt样式表与升级的小部件一起使用?,qt,stylesheet,qt-creator,qtstylesheets,Qt,Stylesheet,Qt Creator,Qtstylesheets,我正在尝试使用Qt样式表对标准小部件进行一些重大的重新设计。因此,在通过#objectName选择器为不同的小部件手动执行了大部分操作之后,我决定以某种方式对类似的小部件进行分组 例如,我有多个qframe,它们的行为类似于内部表单中的标题。我希望它们都有相同的样式表。一种方法是使用命名约定(这是我的回退变量),即QFrame[objectName |=“prefix”]。但我想按类对我的小部件进行分组。所以我创建了一个简单的占位符类: class HeaderFrame: public QFr
#objectName
选择器为不同的小部件手动执行了大部分操作之后,我决定以某种方式对类似的小部件进行分组
例如,我有多个qframe
,它们的行为类似于内部表单中的标题。我希望它们都有相同的样式表。一种方法是使用命名约定(这是我的回退变量),即QFrame[objectName |=“prefix”]
。但我想按类对我的小部件进行分组。所以我创建了一个简单的占位符类:
class HeaderFrame: public QFrame
{
public:
HeaderFrame(QWidget *parent = NULL): QFrame(parent) {}
};
这使我能够将所有这些qframe
升级到headerframe
。在那之后,我试着设置
HeaderFrame { background-color: red; }
样式表到MainWindow对象本身(使其作用于所有HeaderFrame),但它不起作用。QtCreator表单设计器中没有任何更改,编译应用程序后也没有任何更改。我尝试过这个样式表的不同变体,但没有任何效果
那么,是否只有Qt小部件(如QLabel、QFrame等)可以用这种方式进行样式设置?或者有什么方法可以为升级的小部件编写样式表?是的,这是可能的。您应该记住的唯一一件事是,派生小部件的base应该支持样式表,并仔细地重新实现它们的PaintEvent UPD: 例子 类别: 样式表:
Header1Label
{
font-size:14px;
font-weight:900;
}
您可以始终将
类名
添加到对象的类属性中,即QStringList,并使用.class name
选择器。那么我应该怎么做呢?我根本没有重新实现paintEvent(),因此将使用QFrame::paintEvent(),它与样式表完美结合。我只想按照问题中所示的提升的小部件类名对样式表进行分组,就像内置小部件一样。通过它们的类名。@Raiv是的,关于忘记Q_对象宏,你是对的。遗憾的是,它无论如何都不会在QtCreator表单设计器中显示应用的样式表。所以我应该使用带有名称前缀选择器的回退变量。你可以在正在运行的程序中看到它们,qt creator本身不会显示。是的。这样,细粒度应用程序设计将更加困难。
Header1Label
{
font-size:14px;
font-weight:900;
}