0

はい、あなたは正しいです。モデル/ビューで単純なリストを表示しようとしている場合は、QListViewが既にあります。

しかし、リッチ テキストとウィジェットを含む複雑なリストを表示する必要がある場合、QListView には多くの問題があります。Facebook や Twitter のタイムライン リストビューについて考えてみてください。

確かに、リッチ テキストまたは画像用に独自のデリゲートを実装できますが、ListView は静的アイテムのみを印刷できます。そのため、クリック可能なハイパーリンクを表示する方法 (マウスとハイパーリンクの位置を計算することはできますが、非常に面倒な作業です) や非同期の画像を読み込む方法はありません。

さて、QListWidget は私たちのソリューションのようです。ウィジェットを入れることができます。しかし。モデル/ビュー/デリゲート アーキテクチャが失われます。これはひどいことです。

今、私の解決策はQMLでリストビューを書いています。他のウィジェットはネイティブの Qt ウィジェットのままです。(非ネイティブの純粋な QML ユーザー インターフェイスは好きではありません。)

この種の作業を行う場合、QML は非常に柔軟です。次に、モデルをエクスポートし、最後にビューアを QMainWindow に配置します。しかし、2 つのプログラミング言語でコーディングし、他のネイティブ ウィジェットと通信しようとするのは非常に困難です。

では、Qt のモデル/ビュー アーキテクチャを QListWidget で使用する方法はありますか? または、自分で実装する必要がありますか?

4

1 に答える 1

2

QListWidget から派生したQt の MVC を使用しQListViewます...

QListWidget は内部モデルを使用して、リスト内の各 QListWidgetItem を管理します。

QListWidget::model () constモデルにアクセスするために使用するだけです。

于 2013-04-22T10:50:47.153 に答える