2

独自のデリゲートを実装してリッチ テキストまたは画像を表示できますが、ListView は静的なアイテムしか印刷できません。「本物の」アイテムを入れることはできません。ペイントするだけです。

そのため、クリック可能なハイパーリンクや ReTweet ボタンを表示したり、非同期の画像を読み込んだりする方法はありません。Facebook や Twitter のタイムライン リストビューについて考えてみてください。それが私が取り組んでいることです。

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

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

では、動的要素を表示する最良の方法は何ですか?

4

1 に答える 1

3

MVC フレームワークは、この種の作業には適していません。

これを適切に行うには、表示する必要がある動的な型にデリゲートを提供し、dataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight)これらの型の再描画が必要なときにモデルを強制的に発行する外部メカニズムを提供する必要があります。デリゲート ペインティングをトリガーするには、マウス オーバーで更新を強制する必要があるため、インタラクティブなコンテンツではさらに悪化します。

このようなものについては、 を使用する方がよいでしょうQGraphicsScene/View。モデルに依存するのではなく、各アイテムはそれ自体で動作し、(BSP 構造を介して) 必要な再描画のみを取得できます。また、ハードウェア アクセラレーションのオプションもあります。

于 2013-04-26T09:51:46.827 に答える