2011-06-21 8 views
2

私はQtとおしゃべりしていて、小さな問題に遭遇しました。QTableViewの列にQAbstractListModel項目を表示する

写真の一覧をアイコンの表として表示したいと考えています。今、私はQAbstractTableModelをサブクラス化し、QTableViewというサブクラスにプラグインすることでこれを行います。

これは、私の意見では、コード、モデル、ビューが(特にアイテムを編集/追加しようとすると)過度に複雑になります。モデルをQAbstractListModelとして実装しようとすると、項目は表の行として表示されます。

QTableViewの表示項目を列にする方法はありますか?
編集:アイテムが左から右に1行でレンダリングされ、新しい行に折り返されるようにします。

また、いずれの場合でもテーブルビューにテーブルモデルを使用して問題を回避することをお勧めしますか?

Qt Jambiに基づいてQtにC#バインディングを使用しています。

答えて

3

QListViewは、あなたが話している機能とまったく同じです。

QTableViewに固有の機能が必要ない場合は、私は切り替えを提案します。

"isWrapping"を設定すると、リストは上から開始し、下に移動してから新しい列に折り返します。行の代わりに列にリストを表示するにはLeftToRightに

セットの「フロー」

また、「ResizeModeです」を設定し、代わりの固定、調整することが必要になる場合があります。リストのサイズを変更すると自動的に物事を動かすでしょう。

希望に役立ちます。

ちょうど参考として、hereはFlowLayoutの例です。ですから、自分で調整しているグリッドに一連の画像を表示したいのであれば、これはリスト/テーブルのすべてのオーバーヘッドなしであなたのために行います。しかし、それはあなたに選択/編集機能やレイアウトだけを与えるわけではありません。

+0

ありがとう!これはまさに私が探していたものです。 – GeReV

0

私はここで何か分かりません。 TableModelを実装するので、最も望ましい方法でビューのデータを準備できます。あなたがA(00)、B(01)、C(10)、D(11)、または例えばA(00)、C(01)、B (10)、D(11)である。それはあなたがしたいことですか?

+0

あなたが最初のオプションで言ったように。アイテムをA→B→C→Dのように表示します。アイテムは左から右に1行でレンダリングされ、新しい行にラップアラウンドします。 – GeReV

関連する問題