0

Ubuntu12.04でQtCreatorを使用して非常にシンプルなアプリケーションを作成しました。アプリケーションは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 に答える