VerticalHeaderView QML Type
| Import Statement: | import QtQuick.Controls |
| Inherits: |
プロパティ
- model : QVariant
- movableRows : bool
(since 6.8) - syncView : TableView
- textRole : string
詳細説明
VerticalHeaderView は、スタイル付きテーブルヘッダーを提供します。これは、独立したビューとしても、TableView のヘッダーとしても使用できます。
VerticalHeaderView のsyncView プロパティにTableView を割り当てることで、TableView のヘッダーを追加できます。ヘッダーとテーブルは、フリック中も同期されます。
デフォルトでは、VerticalHeaderViewはsync view's model からheader data を表示します。そのモデルからのヘッダー・データを使用したくない場合や、syncView を使用しない場合は、model プロパティに明示的にモデルを割り当てることができます。
注: QAbstractItemModel のヘッダ・データを表示するために、VerticalHeaderView は内部的にモデルのヘッダ・データを独立したプロキシ・モデルでラップします。このモデルは、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 } } } } }
VerticalHeaderViewは、デフォルトでresizableColumns がtrue に設定されます。
HorizontalHeaderViewも参照してください 。
プロパティ・ドキュメント
model : QVariant
このプロパティは、垂直ヘッダービューのデータを提供するモデルを保持する。
デフォルトでは、垂直ヘッダービューはsync view's model からのheader data を表示します。そのモデルからのヘッダーデータを使用したくない場合、またはsyncView を使用しない場合、このプロパティに明示的にモデルを割り当てることができます。model がQAbstractTableModel であれば、そのheader data が使用される。そうでない場合は、QAbstractItemModel 、data が使用されます。
QAbstractItemModels の他に、JavaScript の配列など、他の種類のモデルをこのプロパティに割り当てることもできます。
TableView 、model 、QAbstractTableModelも参照してください 。
movableRows : bool [since 6.8]
このプロパティにより、ユーザはビュー内で行を移動することができます。デフォルト値はfalse です。
注: このプロパティが設定されている場合、VerticalHeaderView 、ユーザは必要な位置に行をドラッグ・アンド・ドロップすることができます。syncView が有効な場合、変更は対応するビュー項目に適用されます。
このプロパティは Qt 6.8 で導入されました。
syncView : TableView
このプロパティは、同期するTableView 。
このプロパティが別のTableView にバインドされると、ヘッダーとテーブルの両方が列幅、列間隔、垂直方向のフリックに関して同期します。
model が明示的に設定されていない場合、ヘッダーはsyncViewのモデルを使用して列にラベルを付けます。
textRole : string
このプロパティは、各ヘッダーセルにテキストを表示するために使用されるモデルのロールを保持します。
モデルに複数のロールがある場合、textRole を設定することで、どのロールが表示されるべきかを決定することができます。
モデルからのデータを表示する際に、割り当てられたtextRole を尊重することはデリゲートの責任です。HorizontalHeaderViewDelegate とVerticalHeaderViewDelegate はこれを自動的に処理しますが、カスタムデリゲートはこの動作を明示的に実装する必要があります。
モデルがQAbstractItemModel である場合、デフォルトは "display" になります。
モデルのroleNames() が textRole で指定されたロールを提供しない場合、警告が出されます。この警告は、textRole を設定することで消すことができます。
QAbstractItemModel::roleNames()も参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.