2017-08-07 21 views
1

QTableviewにデータを入力しようとしています。 Qt Creatorで開発する場合、データはビルドディレクトリから読み込まれます。毎回プログラムを実行すると、QTableviewは以前のデータで再読み込みされ続けます。Qt Creator IDEのビルドディレクトリ

実行前に手動でビルドディレクトリを変更しても、それは起こりません。しかし、新しく実行するたびにビルドディレクトリを手動で変更せずに問題を解決するにはどうすればよいですか?

+0

QannieあなたのIDEは何ですか? Qtクリエイター?ビジュアルスタジオ? – aghilpro

+0

Qt作成者は私のIDEです – annie

+0

QTableViewとのリンクは見えません。 – AlexanderVX

答えて

0

プロジェクトディレクトリには、ファイル名ProjectName.pro.userがあります。

このファイルは、プロジェクトの構成時に作成されます。それはXMLファイルです。

あなたは*.userファイルに次の行を見つけることができます:この行は、デバッグのためのビルドディレクトリアドレスを定義

<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/probook/Documents/Qt/testProject/Build/Windows/Debug</value> 

。そのファイルにはリリースとプロファイルのための同じ行があります。 後藤Qtのクリエイター、ToolsOptions...Build & RunGeneralDefault build directory

また、相対ディレクトリビルドを定義するためのQtのクリエイターを使用します(カスタマイズ)することができます。 Screenshot

さらに詳しい情報:コメントに基づいて

Qt Creator stores user-specific project settings in a .pro.user file. You can share these settings between several projects as a .pro.shared file. It has the same XML structure as a .pro.user file, but only contains the settings to share.

+0

情報ありがとう!しかし、ビルドディレクトリを変更する代わりに、qtableviewでデータを再生成するのを避けるための他の解決策はありますか? – annie

+0

@annieプロジェクトについてもっと説明できますか?起動時にQTableViewをクリアすることは可能ですか? – aghilpro

0

、問題は、ディレクトリを構築するために保存されますデータのようです。そして解決策は、アプリケーションを実行する前にそれを削除することです。実行設定 - - ビルドは、または中のプロジェクト手順 - 設定を構築 -

次のいずれかのプロジェクト下、カスタム・プロセスのステップを追加することができます展開を、そしてちょうど所望のデータファイルを削除します。正確なコマンドは、オペレーティングシステムによって異なります。

代わりに、アプリケーション自体に--development-erase-saved-dataのようなコマンドラインスイッチを追加して、ファイルを消去してもよいし、そのファイルを読み込まなくてもよい。次に、コマンドラインスイッチをプロジェクトに追加 - 設定を実行 - ステップを実行 - コマンドライン引数希望のビルド構成用。

これをアプリケーション自体に追加することは、維持しやすく、ほぼ自動的にクロスプラットフォームです。ただし、アプリケーションには不要な機能がありますが、その場合はデバッグビルド(#ifdef)でのみ有効にすることができます。


最近のところ、データを実行可能ディレクトリに保存することは良い考えではありません。あなたは場所に例えば

QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)

によって返され、それを保存したい場合があります(詳細はhereを参照してください。)

関連する問題