3

Qt のデフォルトのものではなく、別のファイル システムとファイル エンジン ハンドラを使用する必要があるアプリケーションを作成しています。基本的に私ができるようにしたいのは、qt のファイル ダイアログを使用することですが、そのダイアログ内のファイルおよびディレクトリ操作に関するすべての操作を処理する、私の基になるファイル システム ハンドラー (たとえば、boost ファイル システム ライブラリを使用して構築) を用意することです。いくつかの操作を処理するカスタム ファイル エンジンを既に作成しましたが、このカスタム ファイル エンジン用にシグナルを送信する必要があるため、Qt のファイル システム モデルとファイル システム ウォッチャー エンジンに行き詰まっています。大変な仕事が待っているようです。私は正しい方向に向かっていますか?

これを実装できる他の簡単な方法はありますか? 誰でも、どのように進めるかについて何か考えを教えてもらえますか? プロキシ モデルを検討することを考えていましたが、それが機能するかどうかはわかりません。

助けてくれてありがとう。

4

2 に答える 2

1

プロキシモデルは、基になるモデルに含まれるデータで動作するため、それを使用してまったく新しいモデルコンテンツを取得することはできません。

このようなタスクを実行するための明白な方法は、QFileDialogがどのようなモデルを持っているかを調査してから、モデルを置き換えることです。

もちろん、新しいファイルエンジンに関して、QFileDialogからモデルをコピーしてから、propxyモデルをやや奇妙な方法で使用することができます。設定します(QFileDialogの基になるモデルに接続します。アクセスできません)。別の方法)次に、プロキシのsetSourceModel()を使用して、代わりにモデルを設定します。

または、QFileDialogのコードを取得して、ファイルシステムで認識されたコードを自分のコードに置き換えることもできます。しかし、それは悪臭を放つと私は思います。それが合法であるかどうか、そしてライセンスなどが原因でどのような問題に直面する可能性があるのか​​はわかりません。

于 2010-04-12T20:58:02.933 に答える
0

以前は QAbstractFileEngine などでこれを行うことができましたが、Qt 4.6 での QDir への変更により多少壊れました -私の経験についてはQt バグ 10333を参照してください。

于 2010-05-16T07:06:57.180 に答える