2011年12月22日木曜日

( Qt C++ )モデルに使われるロール(属性値)について


Winny事件の開発者の無罪が最近確定されました。
P2Pは使わないので、この事件に関してあまり関心はありません。
しかし、いつもこの手のファイル共有ソフトによる著作権問題がニュースにあがるたびに大変だなぁと思っています。著作権侵害するなと言ったって、人間はできることはやるんですね。
そこにファイル共有ソフトがある限り著作権侵害が起こるのは当たり前なんですよ。じゃあそういうソフトを禁止してしまえばいいかというと、そんなことやってるとネットが窮屈になってしまうわけで、共有が本来の目的じゃなかったの?みたいな感じになってしまう。

だから、私はめんどくさいからネット使用料金に著作権代上乗せしてファイル共有なんて自由にしちゃえば?と常日頃思っています。月1万円で映画もゲームも何でも情報コンテンツを自由にできるとかなら文句もでないと思います。それに各社別々に料金徴収するなんていうのもメンドクサイでしょ?...まぁそんなことできれば苦労しねぇよみたいな事なのかもしれませんが、こういうニュースみるたびそう妄想しています。

はい、それでは モデルに使われるロール(属性値)について書いていきます。

Qtのモデル内にあるデータは、モデルインデックスとロールを持っています。ロールは属性値のようなものです。データの補助に使われたり、表示属性を制御するために使われます。
今回はそのロールをズラーッと並べていこうと思います。
では

(一般的なもの)
Qt::DisplayRole 値0 キーデータをテキスト形式で表示(QString)
Qt::DecorationRole 値1 装飾としてアイコン形式でレンダリングするデータ(QColor,QIcon,QPixmap)

Qt::EditRole 値2 エディター編集に適した形式のデータ(QString)
Qt::ToolTipRole 値3 アイテムのツールチップに表示されるデータ(QString)
Qt::StatusTipRole 値4 ステータスバーに表示されるデータ(QString)
Qt::WhatsThisRole 値5 ”これは何ですか?”モード内の項目に表示されるデータ(QString)

Qt::SizeHintRole 値13 ビューに指定するサイズヒント(QSize)


(ロールの外観とメタデータ関連)
Qt::FontRole 値6 アイテムの既定デリゲートに使用するフォント(QFont)
Qt::TextAlignmentRole 値7 既定デリゲートと表示テキストの配置(Qt::AlignmentFlag)
Qt::BackgroundRole 値8 アイテム既定のデリゲートのレンダリング使用した背景ブラシ(QBrash)

Qt::ForegroundRole 値9 アイテム既定デリゲート使われる前景ブラシ(QBrush)
Qt::CheckStateRole 値10 アイテムのチェック状態を取得(Qt::CheckState)
Qt::InitialSortOrderRole 値14 並べ替え順序取得(Qt::SortOrder)


(ユーザー補助)
Qt::AccessibleTextRole 値11 アクセシビリティ拡張機能と、スクリーンリーダなどのプラグインで使用するテキスト(QString)

Qt::AccessibleDescriptionRole 値12 ユーザー補助項目の説明(QString)


(ユーザーの)

Qt::UserRole 値32 アプリケーション固有の目的に使用できる


※英訳が変なとこもあるかとも思います。変だと思ったら迷わずリファレンスを見てください。

とりあえずこれでアイテムビュークラス関係は終了です。次回からはC++ GUI Programming with Qt4の2D and 3D Graphicsをちまちまやっていこうと思います。
以上です。