質問

ように小さなqtのアプリを使用PyQt4)やっかいものに迷ったらどのように実行いたします。いQTableViewを表すデータの一部ていただきたいと思いますように追加の別カラムのQTableViewを含むチェックボックス制御できる有線までの一部のモデルです。例えば、このようなもの:

alt text

注の削除欄にはチェックボックスウィジェットのための各行はこのウェブアプリ、デスクトップQtのアプリは、元は同一です)。ボーナスポイントできれば、複数行を選択し、右クリックし、"チェックイン/チェックを外を選択".

場合は、この数が不明なドロップコメントこそもそもの私の回答の解明.

役に立ちましたか?

解決

の実施に自分のテーブルモデルの作用 QStandardItemModel (@Andy勧告するものではきめ細かな制御したいことをいっていただけるように要約しなければならない。いい QtのドキュメントPyQtのクラスの文書化 とできるような授業があります。(Iがoverexplainingしてください。 QTableView がよくるものがあるな、と思っています。)

車checkable国:

  • の作成クラスのサブクラス QTableModel.
    • 選択データ構造の店舗の内容を行った。このインターネットはモバイル(内部リストが付いており、複雑なSQLデータベース(この場合は参照 QSqlTableModel その代わり
    • オーバーライド rowCount, columnCount, data, は、 setData.
      • rowCountcolumnCount 対応もかなり直接ご使用のためのデータモデルです。の場合は基本的には2次元配列(またはリストのリストなどがナ.
      • data がく面白いです。品目モデル店舗数の異なる分野(Qt通話 役割data を返します)によって異なりの役割を求められています。ご注意だと思うのですが、もっとつのデータ型のうちに返されるものでも必要に包まれた入り QVariant.
        • Qt.DisplayRole でもテキストで表示され、細胞の表に示す。これは実際のデータが共通の場合(デフォルトでは、depthパネルです。
        • Qt.CheckStateRole はboolean.帰国 Qt.Checked 表示を確認のチェックボックス、 Qt.Unchecked 戻り、チェックします。だいたいカラムを含むはチェックボックスのみを取り扱っています。
        • その他の役職に役立つアイコン、背景色、その他の多くの特徴がみになれます。
        • 他の独自のレンダリングメカニズムの役割を返す必要がある QVariant.
      • setData が対称に data.で処理する必要がありますの役割取り扱いに data: Qt.DisplayRole 実際のデータ Qt.CheckStateRole のチェックします。

する複数選択の行と列および細胞だいたい理解 選択モデル.ハロウィンパーティーには:

  • の設定 選択モード テーブルビュー: view.setSelectionMode( QAbstractItemView.ContiguousSelection).このまだ見の連続する細胞。き選任意の細胞がどの見 QAbstractView.SelectionMode.
  • るかを決定する細胞が実際に選択した以下のアクションの表示、 選択モデル (注の 'l'): view.selectionModel().selectedIndexes().きに対し繰り返し操作を行うこと for ループを実行します。

を右クリックす:

  • オーバーライドでのご観光スポットの拠点に contextMenuEvent.
  • の作成 QMenu 接続してもスロットあります。

より深い理解を読む Qtガイドモデルとビュー ださい。あの Qt商品の眺望例.多くのものを記述して実施されPyQtに少ないコードを含む@Jesseつのツリーモデル事例をテーブルが少なく作業を実装するために必要なも少なく、上記のとおりです。)

他のヒント

あなたはまた、あなたの「チェック可能」状態を経アイテムと対話するためのインタフェースを提供しますQStandardItemModel、見ている可能性が!

またQAbstractItemModelから継承し、役割のQtを使用することができます:: CheckStateRole ...

あなたは、列のカスタムアイテムのデリゲートを作成することができ++のQt / Cで。私はあなたがPyQtは非常に似何かを行うことができます引き受けます。次の例を参照してください。

スターの委任例
スピンボックスの委任例

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top