Qt如何从外部Qt样式表文件中应用样式?

时间:2010-12-15 08:59:02

标签: c++ css qt user-interface

我希望用户只需加载 OWN Qt样式表文件即可自定义应用程序的默认外观。我们如何实现这一目标?谁能给我一个良好的开端?

2 个答案:

答案 0 :(得分:35)

假设用户的样式表名为stylesheet.qss,并且位于应用程序文件夹中。

您可以在启动应用程序时使用-stylesheet参数加载样式表:

myapp->stylesheet = stylesheet.qss;

但这需要您的用户知道如何使用参数启动应用程序。

您还可以在应用中添加设置对话框,用户可以在其中选择样式表路径。

然后,您可以打开此文件,加载内容,然后使用QApplication::setStyleSheet()将其设置为您的应用程序:

 QFile File("stylesheet.qss");
 File.open(QFile::ReadOnly);
 QString StyleSheet = QLatin1String(File.readAll());

 qApp->setStyleSheet(StyleSheet);

Qt正在提供可能有帮助的example online

答案 1 :(得分:3)

您只需根据客户提供的配置为整个应用程序设置样式表。

http://doc.qt.io/qt-5/qapplication.html#styleSheet-prop

您可以从任意数量的位置设置/获取此配置,应用程序中的属性对话框可能是最自然的方法。