PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。配布ライセンスは LGPL で公開されています。最新のバージョンは Qt6 に対応した PySide6(記事執筆時点で 6.3.2)です。
文字列とチェックボックスをマトリックス状に配置したウィジェットが必要になり、出来合いの QStandardItemModel を使ってチェックボックスを QTableView のセルに表示するサンプルを作りました [2]。間に合せで作ったようなものでも使えなくはないのですが、いまいち納得できませんでした。
欲しいのは、極めてたくさんのチェックボックスが並んだチェックシートみたいなものなのです。チェックボックスのチェック状態はチェック時ではなくて、あるタイミングでまとめて確認できれば良いというものです。
あれこれ試して行き着いたやりかたをサンプルで紹介します。このサンプルの解説をしようとするとそれだけで記事が完成しなくなるので、しません。読み手に判るような説明がすぐにできないということは、まだ自分でも理解しきれていない部分が多々ある証なのです。😅
下記の OS 環境で動作確認をしました。
Fedora Linux 37 preview | x86_64 | |
python3.10 | python3.10-3.10.7-1.fc37.x86_64 | |
PySide6 | 6.3.2 |
qt_tableview_checkbox_1.py
qt_tableview_checkbox_1.py の実行例
参考サイト
- bitWalk's: PySide6: チェックボックス付きの QTreeView [2022-03-24]
- bitWalk's: PySide6: チェックボックス付きの QTableView [2022-09-01]
- QTableView — Qt for Python
- QAbstractTableModel - Qt for Python
- QStyledItemDelegate - Qt for Python
- QProxyStyle - Qt for Python
にほんブログ村
#オープンソース
0 件のコメント:
コメントを投稿