0

QFile.open()を使用してqtクリエーターでファイルを作成/保存しようとしていました。ただし、アプリケーションのビルドフォルダーに常にファイルを作成/保存しています。このコードを試して、ディレクトリを、ソース/ヘッダーファイルがあるディレクトリ内のディレクトリに変更しました。

QDir::setCurrent("/ui");
file.setFileName("tmp.ui");

QDir::setCurrent("/main/ui");

if (file.open(QIODevice::ReadWrite))
{
    builder.save(&file, myDialog);
}

ファイルtmpを作成しますが、正しいディレクトリには作成しません。相対ディレクトリを置きたい。どうすればそれに到達できますか?

4

1 に答える 1

0

現在のディレクトリを変更する必要はないと思います。現在のディレクトリを変更せずに、ファイルへの絶対ファイルパスを生成できます。

QDir dir("/main/ui");
file.setFileName(dir.absoluteFilePath("tmp.ui"));

しかし、それも無意味なようです。あなたはただ書くことができますfile.setFilename("/main/ui/tmp.ui")

「/」で始まるパスは絶対パスです。ファイルシステムのルートに「/ui」または「/main」ディレクトリがあることは確かですか? ありそうもない。への有効な絶対パスを指定してみてくださいQDir。相対パスを指定する場合は、最初の現在のディレクトリ (ビルド ディレクトリなど) から検索されます。

于 2014-03-03T16:36:23.777 に答える