将QT样式设置为外部QSS文件时出现问题

时间:2014-09-27 23:33:21

标签: qt stylesheet qr-code qfile qtstylesheets

我在网上发现了一个QSS文件(http://tech-artists.org/forum/showthread.php?2359-Release-Qt-dark-orange-stylesheet),我希望将其用作我应用中的样式。我一直在尝试多种不同的方法将此文件导入到我的程序中,但每次运行程序时,都无法成功打开文件。
目前,我将文件保存为myStyle.qss,与我的项目位于同一目录中。我也听说过将文件插入qrc文件。这有必要打开它,还是只是一种方便的存储方式? 到目前为止我的代码是:

    QApplication a(argc, argv);
    QFile file(":/myStyle.qss");
    file.open(QIODevice::ReadOnly);
    QString style(file.readAll());
    a.setStyleSheet(style);
    file.close();
我已经在多个不同的地方看到过这段代码,所以我很确定我的大部分代码是正确的,我的主要问题只是在我的文件放置中,或者我写错了文件路径。 谢谢!

1 个答案:

答案 0 :(得分:0)

":/myStyle.qss"它是用于Qt资源系统的路径。正如你所说,这个文件在同一个目录中,所以尝试设置nornal路径"myStyle.qss",但要小心,因为Qt将在build目录中搜索这个文件,所以你应该把文件放在build目录中

但是当您的qss文件完成后,请将其保存在资源中。如何在网络中执行此操作有很多示例(例如this。在这种情况下,您需要当前路径":/myStyle.qss"

为什么需要资源?

资源被构建到exe文件中,因此您永远不会丢失此文件,用户无法删除或重写。如果用户删除了您的qss文件,您的所有样式都将失败,因此您应该保护它。