qt - qt应用程序的多个样式表

标签 qt stylesheet

单个 qt 应用程序是否可以有多个样式表并根据需要选择其中任何一个?

例如,我希望在我的应用程序中具有不同样式的按钮。我知道通常你会有这样的东西:

QPushButton { background-color: green; }

然后您的所有按钮都将具有如上行所示的绿色样式。但是,我希望我的样式表看起来像这样:

QPushButton1 { background-color: blue; }
QPushButton2 { background-color: green; }

我可能需要在我的应用程序中放置几个​​按钮,对于每个按钮,我想选择 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 - qt应用程序的多个样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29549636/

相关文章:

jquery - jQuery 中的 HTML 元素和 jQuery 中的 CSS 样式

c# - 在 Visual Studio 2013 中创建 CSS 文件时,上下文菜单中不存在构建样式项?

css - 带有垂直文本的垂直菜单

node.js - 快速静态文件夹中的样式表

c++ - Qt在应用类中拦截Application::exec?

c++ - 初始化指向 QListWidgetItem Qt 5.8 的指针

c++ - Qt 插槽测试

c++ - 如何在 Qt 中获取 Windows 默认文件夹的本地化名称

c++ - Qt 脚本多线程

css - "Don' t use IDs in selectors (CSS)”那么,用什么代替ID?