我在Ubuntu 12.04上用Qt Creator做了一个非常简单的应用程序。该应用程序读取一个xml文件并显示几个图像。但是当我尝试通过双击另一台机器上的图标(运行Lubuntu)来启动应用程序时,图像不会显示,并且不会读取xml文件。通过键入./App。
,从命令行启动应用程序时,该应用程序可以正常工作为什么它会像这样,我该如何解决?
编辑:读取xml的方法:
QDomDocument doc("document");
QString path = "datastorage.xml"; // xml is in same directory as the executable
QFile xmlFile(path);
if (!xmlFile.open(QIODevice::ReadOnly))
throw QString("Error with XML: Could not open file " + path);
if (!doc.setContent(&xmlFile)) {
xmlFile.close();
throw QString("Error with XML: Could not set QDomDocument content from " + path);
}
xmlFile.close();
QDomElement root = doc.documentElement();
return root;
答案 0 :(得分:4)
只需使用相对路径来读取文件,这些路径始终与“工作目录”相关。如果您从控制台启动应用程序,并且所有必需的文件都在app目录中,那么一切正常。从桌面工作目录启动时可能会有所不同。只需将QCoreApplication :: applicationDirPath()添加到您正在使用的所有路径中。