【发布时间】:2011-05-25 19:06:51
【问题描述】:
我希望用户能够通过简单地加载他们的 OWN Qt 样式表文件来自定义我们应用程序的默认外观。我们如何做到这一点?谁能给我一个先机?
【问题讨论】:
-
CSS 是指 HTML CSS 文件还是 Qt 样式表 本身?
-
Qt 样式表...抱歉...让我更新一下...
标签: c++ css qt user-interface
我希望用户能够通过简单地加载他们的 OWN Qt 样式表文件来自定义我们应用程序的默认外观。我们如何做到这一点?谁能给我一个先机?
【问题讨论】:
标签: c++ css qt user-interface
假设用户的样式表名为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,这可能会有所帮助。
【讨论】:
CamelCase,这很混乱。尤其是通用名称,例如File 或StyleSheet。如果这些是类名,没有人会感到惊讶。
您只需根据客户提供的配置为整个应用程序设置样式表。
http://doc.qt.io/qt-5/qapplication.html#styleSheet-prop
您可以从任意数量的位置设置/获取此配置,应用程序中的属性对话框可能是最自然的方法。
【讨论】: