2

私は IRC クライアントを書いています (はい、別のクライアントです)。簡単に言えば。これのリストを保持するサーバーダイアログを書いています:

身元
    ネットワーク
        チャネル
        住所

ネットワーク、チャネル、およびアドレス用の 3 つの異なるリスト ビューがあります。ユーザーが ID (コンボ ボックス) を変更したとき。ネットワーク リストビューは、その特定の ID のすべてのネットワークを検索します。ネットワークをロードすると、最初のネットワークが自動的に選択され、その特定のネットワークのすべてのチャンネルとアドレスがロードされます。

問題は、すべてのメモリとデータの読み込みを最小限に抑えるために、1 つのモデルに対して 3 つのビューが必要なことです。そのため、管理がはるかに簡単になり、多くの作業を行う必要がなくなります。

QColumnView を見ると、まったく同じです。しかし、サーバーダイアログを簡単に通過できるように、ビューはまったく異なるタブにあるため、1 つの正確なページにある必要はありません。

この複雑さを処理するための最良の方法は何だろうと思っています。情報は SQLite データベースに保存されます。私はすでにそれを抽出して保存するために書かれたクラスを持っています。モデリングだけが、このソリューションの厄介な部分です。

4

2 に答える 2

1

単一のTreeModelを作成し、QSortFilterProxyModel()を使用して3つの異なるビューを表示します。

于 2010-12-16T13:50:40.583 に答える
0

これを行う最善の方法は、モデルを動的にロードすることです。ComboBox が ID を変更したとき。NetworkList 内のすべての項目を削除し、後で再設定して、そこにあったすべてのネットワークを削除します。

于 2010-05-25T20:06:48.907 に答える