0

我在 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;
4

1 回答 1

5

只需您使用相对路径来读取文件,并且这些路径始终相对于“工作目录”。如果您从控制台启动应用程序,并且所有必需的文件都在应用程序目录中,那么一切正常。从桌面工作目录启动时可能会有所不同。只需将 QCoreApplication::applicationDirPath() 添加到您正在使用的所有路径。

于 2013-01-08T17:04:39.590 回答