qt 应用程序的多个样式表
Multiple stylesheets for qt application
是否可以为单个 qt 应用程序设置多个样式表并select根据需要使用其中的任何一个?
例如,我想在我的应用程序中使用不同样式的按钮。我知道通常你会有这样的东西:
QPushButton { background-color: green; }
然后你所有的按钮都将按照上面的行具有绿色样式。但是,我想让我的样式表看起来像这样:
QPushButton1 { background-color: blue; }
QPushButton2 { background-color: green; }
我可能需要在我的应用程序中放置几个按钮,对于每个按钮,我想 select QPushButton1 样式或 QPushButton2 样式。
在一个或多个样式表中这样做是否可行,以便我可以使用 setStyleSheet() 来启用我的自定义样式?
谢谢!
您可以使用全局样式表并对每个特殊对象名称进行特殊设置。
#QPushButton1 { background-color: blue; }
#QPushButton2 { background-color: green; }
但在这种情况下,您还需要在代码中设置这些对象名称。可以通过以下方式完成:
ui->pushbutton1->setObjectName("QPushButton1");
ui->pushbutton2->setObjectName("QPushButton2");
也可以为不同的小部件设置相同的对象名称。
关于更改 objectName
。当您更改 objectName
时,Qt
不会自动重新应用 styleSheet
(这样做是为了获得更好的性能),因此您应该手动执行此操作。您可以使用 objectNameChanged
信号并在相应的插槽中重新应用 styleSheet
或类似的东西:
ui->pushButton_2->setObjectName("QPushButton1");
qApp->setStyleSheet(qApp->styleSheet());//re-apply
是否可以为单个 qt 应用程序设置多个样式表并select根据需要使用其中的任何一个?
例如,我想在我的应用程序中使用不同样式的按钮。我知道通常你会有这样的东西:
QPushButton { background-color: green; }
然后你所有的按钮都将按照上面的行具有绿色样式。但是,我想让我的样式表看起来像这样:
QPushButton1 { background-color: blue; }
QPushButton2 { background-color: green; }
我可能需要在我的应用程序中放置几个按钮,对于每个按钮,我想 select QPushButton1 样式或 QPushButton2 样式。
在一个或多个样式表中这样做是否可行,以便我可以使用 setStyleSheet() 来启用我的自定义样式?
谢谢!
您可以使用全局样式表并对每个特殊对象名称进行特殊设置。
#QPushButton1 { background-color: blue; }
#QPushButton2 { background-color: green; }
但在这种情况下,您还需要在代码中设置这些对象名称。可以通过以下方式完成:
ui->pushbutton1->setObjectName("QPushButton1");
ui->pushbutton2->setObjectName("QPushButton2");
也可以为不同的小部件设置相同的对象名称。
关于更改 objectName
。当您更改 objectName
时,Qt
不会自动重新应用 styleSheet
(这样做是为了获得更好的性能),因此您应该手动执行此操作。您可以使用 objectNameChanged
信号并在相应的插槽中重新应用 styleSheet
或类似的东西:
ui->pushButton_2->setObjectName("QPushButton1");
qApp->setStyleSheet(qApp->styleSheet());//re-apply