qundocommandを使用してアプリケーションのサポートを元に戻すqtのundoフレームワークを使用しています。 これらのqundocommandをファイルに保存してリロードする簡単な方法はありますか?qundocommandをファイルに保存してリロードする方法は?
2
A
答えて
1
組み込みの方法はありません。セッション間で元に戻すスタックを保存するのは一般的ではないと思います。スタック上のコマンドを反復し、それぞれの固有のデータをQDataStreamを使って保存することによって、コマンドをシリアル化する必要があります。
...
dataStream << undoStack->count(); // store number of commands
for (int i = 0; i < undoStack->count(); i++)
{
// store each command's unique information
dataStream << undoStack->command(i)->someMemberVariable;
}
...
さらに、QDataStreamを使用してデータを逆シリアル化して、QUndoCommandsに戻すこともできます。
QFileを使用してファイル管理を処理できます。
1
使用Qtのシリアライズここで説明するように:
は、その後、あなたのQUndoCommands以内にあなたがそれにデータを書き込むために一時ファイルを使用することができます。
http://qt-project.org/doc/qt-4.8/qtemporaryfile.html
しかし、これが発生する可能性があります各ファイルが開いたままになっているため、いくつかのプラットフォーム(Linux)で開いているファイルハンドルが足りなくなる可能性があります。
これに対処するには、コマンドを処理する他のファクトリタイプのオブジェクトを作成する必要があります。この場合、QTemporaryFileへの参照が自動的に渡されます。このファクトリ/ QUndoCommandケアテイクオブジェクトは、QUndoCommandsと同じ存続期間を持つ必要があります。そうでない場合は、一時ファイルがディスクから削除され、QUndoコマンドが破損します。
もう1つのことは、あなたの実際の元に戻すコマンドの代理としてQUndoCommandを使用することです。これは、元に戻すコマンドがファイルに保存されているときに内部ポインタを削除/設定できるのでnullにするその後、それを復元します。
関連する問題
- 1. リロード可能なファイルに配列を保存する最良の方法
- 2. ファイルを保存して返す方法
- 3. webviewでリロードURLを最後に保存する方法
- 4. QFiledialog:ファイルをqfiledialogに渡して保存する方法は?
- 5. データをファイルに連続して保存する方法は?
- 6. アプリケーションディレクトリにファイルをロードして保存する方法は?
- 7. 画像を描画してファイルに保存する方法は?
- 8. Mysqlの保存時間に基づいてPHPページをリロードする方法は?
- 9. リロードせずにファイルに変更を保存するPage
- 10. コンテンツプロバイダにファイルを保存する方法
- 11. ファイルをローカルディレクトリに保存する方法
- 12. レジストリキーをファイルに保存する方法
- 13. CGPathをファイルに保存する方法
- 14. ファイルをsqliteに保存する方法
- 15. hibernateを使用してデータベースにファイルを保存する方法
- 16. fsを使用してファイルをサーバーに保存する方法
- 17. レンダリングビューを静的ファイルとして保存する方法は?
- 18. sudoを使ってvimにファイルを保存する方法は?
- 19. スカラマップをテーブルとして保存する方法と、テーブルをファイルに保存する方法
- 20. データベースpostgresにzipファイルを保存してダウンロードする方法
- 21. アンドロイド:JSONデータをファイルに保存して取得する方法
- 22. ファイルをディスクに保存してJavaで削除する方法
- 23. Xamarin-ビデオを録画してファイルに保存する方法
- 24. 画面をキャプチャしてXamarin.Macのファイルに保存する方法
- 25. reactjs mongodb - ファイルをアップロードしてmongodbドキュメントに保存する方法
- 26. xmlファイルを反復してマップに保存する方法
- 27. イメージをファイルに保存し、MVC3を使用してイメージをデータベースに保存する方法は?
- 28. jsreportonline - PDFファイルに保存する方法
- 29. ローカルに保存されたxmlファイルを.plistファイルに保存する方法
- 30. ユーザーがアップロードしたファイルをWordpressに保存する方法は?
ディスクに書き込む他の理由があります - もしあなたが500の取り消しコマンドを持っていれば、それはメモリ使用量を増やします。 – paulm