![見出し画像](https://assets.st-note.com/production/uploads/images/116597954/rectangle_large_type_2_fedb01bd5be4abe6b31fefc344d9ae94.png?width=1200)
モデル&ビュープログラミングを学びたい人へ
いません。はい終わり。
えっ?いない? いや、そんなはずはありません。
多分10人くらいはいらっしゃると思っています。
Qtではモデルビュープログラミングという分野があります。
この分野は、例えばマイクロソフトのエクセルのように、大量のデータを管理し、それをユーザーに表示する機能を提供するクラスです。
Qt初学者にとって、これが難しいのなんのって。
まず嫌なのが大量の英語の文書。
次に嫌なのが日本語だとしても何やっているのかよくわからないこと。
さらに頭を混乱させるのが、データのドラッグやドロップをすることによって、データ挿入されたり、されなかったり、突然データが消滅したり、何も起きなかったり、その挙動が謎であるということ。
簡単に使えるように設計されているので、あまり深く入る必要がないことも多いのですが、いざその構造を理解するとなると、それなりの時間が必要になります。
必要な期間は、人によっては、数か月~1年単位ですね。
モデルビューは、モデル デリゲート ビューという3つのコンポーネント、そしてその関連性を理解しなければなかなか思うようにいきません。
しかしもう大丈夫。
モデルビュープログラミングの本が出ました。
Amazon.co.jp: 基礎からのモデルビュープログラミング eBook : 忍者サットリ君: 本
Amazon.co.jp: 基礎からのモデルビュープログラミング: QStandardItemModel編 eBook : 忍者サットリ君: 本
Amazon.co.jp: 基礎からのモデルビュープログラミング: QAbstractItemModel編 電子書籍: 忍者サットリ君: Kindleストア
難解なQAbstractItemModelについての本がとうとう出ました。読んでみましたが、仕組みを解説しているところがいい切り口です。
ビューには、リスト型、テーブル型、ツリー型、これらが主要なものです。
そして、それに対応するモデルが存在しています。
モデルは、使いやすさに応じて3段階に分かれています。
1つ目は、モデルがQt側によって既に組み込まれているQListModel, QTableModel, QTreeModel
このモデルについては、私たちは直接利用することはありません。
QListWidget, QTableWidget, QTreeWidgetの3つを使い、データとのやり取りは、QListWidgetItem, QTableWidgetItem, QTreeWidgetItemで行います。
これが最も簡単で扱いやすいクラスです。
こういう簡便なクラスがわざわざ作られている時点で、3つ目のアブストラクト系の習得は無理な人が多いと計算されているかのようですね。
2つ目は、QStandardItemModel.
これはリスト型、テーブル型、ツリー型3つ全てのビューを兼ねたモデルです。したがって、QStandardItemというクラスでデータとのやり取りを行います。これも同様に人気なモデルです。しかし、メモリ効率が悪いという欠点があります。
3つ目は、QAbstractListModel, QAbstractTableModel, QAbstractItemModelの3つです。これは最もメモリ効率がいいのですが、車でいえばマニュアル操作のような範囲なので、扱うにはそれ相応の知識が必要になります。
順番に読んでいくのがお勧めです。この本は他の本と違い、どうして、なぜ?を考えた本ですので、一読の価値はあると思います。何も無いよりは絶対にいいはず・・・。
これ、値段は安すぎるほど安いと思っています。Kindle Unlimitedの本なので、タダで読むことができます。Kindle Unlimitedに加入すると、いろいろな本が読み放題。既に加入中の人は絶対損はしませんね!
読む時間くらいはかかりますが・・・。嫌ならやめればいいだけの話ですよね。
ちょっと計算するんですが、最低賃金が1時間700円だとする。1日8時間働く人。6か月習得するのに必要だとして、100万円ちょっとになりますね。この本を読むことでわずか1週間~くらいにぎゅぎゅっと短縮できるのではないでしょうか。すいません。こういう計算が好きなもので。
この記事は7人しか読まなかったので、たったの7名であることが判明いたしました。ずこ~。