我在 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;
Run Code Online (Sandbox Code Playgroud)
只是您使用相对路径来读取文件,而这些路径始终相对于“工作目录”。如果您从控制台启动您的应用程序,并且所有必需的文件都在应用程序目录中,那么一切正常。从桌面工作目录启动时可能会有所不同。只需将 QCoreApplication::applicationDirPath() 添加到您使用的所有路径即可。
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |