Qt应用程序仅在从命令行启动时才能正常工作

时间:2013-01-08 16:15:05

标签: qt ubuntu

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

1 个答案:

答案 0 :(得分:4)

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