【发布时间】:2013-09-05 06:59:31
【问题描述】:
我正在尝试加载 CSS 文件以在整个 Qt 应用程序中进行格式化。目前,我的“stylesheet.css”文件与我构建的 exe(调试和发布)位于同一文件夹中。但是,在运行程序时它不会产生任何错误,只是输出“test:”,所以它显然没有找到文件或者我没有正确读取它?
如果这是一个愚蠢的错误,请原谅我 - 我对 Qt 和 C++ 都很陌生。
#include "mainwindow.h"
#include "qfile.h"
#include "qtextstream.h"
#include <QApplication>
#include <iostream>
int main(int argc, char *argv[])
{
QApplication program(argc, argv);
QFile styleFile("stylesheet.css");
styleFile.open(QIODevice::ReadOnly);
QTextStream textStream(&styleFile);
QString styleSheet = textStream.readAll();
styleFile.close();
program.setStyleSheet(styleSheet);
std::cout << "test: " << styleSheet.toStdString() << std::endl;
MainWindow w;
w.showMaximized();
return program.exec();
}
【问题讨论】:
-
通过 Qt 运行程序时复制源代码旁边的 CSS 文件。
-
QFile::open() 如果成功则返回 true。在尝试对其进行任何操作之前,您应该始终检查文件是否已成功打开。您还可以检查QFile::errorString() 发生的错误。
-
谢谢大家——不过,经过更多研究后发现问题比我想象的要简单。另外,我一定会记得这样做,谢谢你的小费。在深入挖掘之后,事实证明我缺少一个 QRC 文件(我什至不知道它存在)。所以我创建了一个资源 (QRC) 文件,添加了前缀“/style”,然后将我的样式表添加到该前缀。它现在可以完美运行。此外,有一次我将 .css 更改为 .qss(我想我应该提到它,尽管我怀疑它有什么不同)。
-
@GeoffreyTucker 您应该发布您的解决方案作为答案并尽可能接受它。
-
我实际上是先尝试这样做的——不过,它说我必须等待 8 小时才能获得少于 10 的声望。我一定会在明天的某个时间发布它