HorizontalHeaderView QML Type
TableView 、水平方向のヘッダービューを提供する。 ...続きを読む
Import Statement: | import QtQuick.Controls |
Inherits: |
プロパティ
- model : QVariant
- movableColumns : bool
(since 6.8)
- syncView : TableView
- textRole : QString
詳細説明
HorizontalHeaderViewは、スタイル付きテーブルヘッダーを提供します。独立したビューとしても、TableView のヘッダーとしても使用できます。
HorizontalHeaderViewのsyncView プロパティにTableView を代入することで、TableView のヘッダーを追加できます。そうすると、フリックしている間、ヘッダーとテーブルが同期されます。
デフォルトでは、HorizontalHeaderViewはsync view's model からheader data を表示します。そのモデルからのヘッダー・データを使用したくない場合や、syncView を使用しない場合は、model プロパティに明示的にモデルを割り当てることができます。
注: QAbstractItemModel のヘッダ・データを表示するために、HorizontalHeaderView は内部的にモデルのヘッダ・データを独立したプロキシ・モデルでラップします。このモデルはapplication model とモデル項目を共有しません。 つまり、index() などの関数を呼び出した場合、返されるモデル・インデックスはアプリケーション・モデルではなく、プロキシ・モデルに属することになります。
デフォルトでは、textRole は"display"
に設定されており、モデルのQt::DisplayRole からのデータが使用されます。代わりにそのデータを表示させるために、これを別のロール名に設定することができます。
アプリケーションは、シーン内の正しい位置にヘッダーを配置する責任があります。1つのTableView 、いくつでもヘッダーを追加することができます。これは、例えばテーブルの4辺すべてにヘッダーを配置したい場合に便利です。
次のスニペットは、テーブルビューに水平と垂直のヘッダービューを追加する方法を示しています:
import QtQuick import QtQuick.Controls import Qt.labs.qmlmodels ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("HeaderView") Rectangle { anchors.fill: parent // The background color will show through the cell // spacing, and therefore become the grid line color. color: Application.styleHints.appearance === Qt.Light ? palette.mid : palette.midlight HorizontalHeaderView { id: horizontalHeader anchors.left: tableView.left anchors.top: parent.top syncView: tableView clip: true } VerticalHeaderView { id: verticalHeader anchors.top: tableView.top anchors.left: parent.left syncView: tableView clip: true } TableView { id: tableView anchors.left: verticalHeader.right anchors.top: horizontalHeader.bottom anchors.right: parent.right anchors.bottom: parent.bottom clip: true columnSpacing: 1 rowSpacing: 1 model: TableModel { TableModelColumn { display: "name" } TableModelColumn { display: "color" } rows: [ { "name": "cat", "color": "black" }, { "name": "dog", "color": "brown" }, { "name": "bird", "color": "white" } ] } delegate: Rectangle { implicitWidth: 100 implicitHeight: 20 color: palette.base Label { text: display } } } } }
HorizontalHeaderViewは、デフォルトでresizableColumns がtrue
に設定されます。
VerticalHeaderViewも参照してください 。
プロパティ Documentation
model : QVariant |
このプロパティは、水平ヘッダービューのデータを提供するモデルを保持します。
デフォルトでは、水平ヘッダービューはsync view's model からheader data を表示します。そのモデルからのヘッダーデータを使用したくない場合、またはsyncView を使用しない場合は、このプロパティに明示的にモデルを割り当てることができます。model がQAbstractTableModel であれば、そのheader data が使用される。そうでない場合は、QAbstractItemModel 、data が使用されます。
QAbstractItemModels の他に、JavaScript の配列など、他の種類のモデルをこのプロパティに割り当てることもできます。
TableView,model,QAbstractTableModelも参照してください 。
movableColumns : bool |
このプロパティは、ユーザーがビュー内で列を移動することを可能にします。デフォルト値はfalse
です。
注: このプロパティが設定されている場合、HorizontalHeaderView 、ユーザは必要な位置に列をドラッグ&ドロップすることができます。syncView が有効な場合、変更は対応するビュー項目に適用されます。
このプロパティは Qt 6.8 で導入されました。
syncView : TableView |
textRole : QString |
このプロパティは、各ヘッダーセルにテキストを表示するために使用されるモデルの役割を保持します。
モデルに複数のロールがある場合、textRoleを設定することで、どのロールを表示するかを決定することができます。
モデルがQAbstractItemModel の場合、デフォルトは "display "となります。
モデルのroleNames() が textRole で指定されたロールを提供しない場合、警告が出されます。この警告は、textRole を設定することで消すことができます。
QAbstractItemModel::roleNames()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。