HorizontalHeaderView QML Type

TableView 、水平方向のヘッダービューを提供する。 ...続きを読む

Import Statement: import QtQuick.Controls
Inherits:

TableView

プロパティ

詳細説明

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は、デフォルトでresizableColumnstrue に設定されます。

VerticalHeaderViewも参照してください

プロパティ Documentation

model : QVariant

このプロパティは、水平ヘッダービューのデータを提供するモデルを保持します。

デフォルトでは、水平ヘッダービューはsync view's model からheader data を表示します。そのモデルからのヘッダーデータを使用したくない場合、またはsyncView を使用しない場合は、このプロパティに明示的にモデルを割り当てることができます。modelQAbstractTableModel であれば、そのheader data が使用される。そうでない場合は、QAbstractItemModeldata が使用されます。

QAbstractItemModels の他に、JavaScript の配列など、他の種類のモデルをこのプロパティに割り当てることもできます。

TableView,model,QAbstractTableModelも参照してください


movableColumns : bool [since 6.8]

このプロパティは、ユーザーがビュー内で列を移動することを可能にします。デフォルト値はfalse です。

注: このプロパティが設定されている場合、HorizontalHeaderView 、ユーザは必要な位置に列をドラッグ&ドロップすることができます。syncView が有効な場合、変更は対応するビュー項目に適用されます。

このプロパティは Qt 6.8 で導入されました。


syncView : TableView

このプロパティは、同期するTableView を保持します。

このプロパティが別のTableView にバインドされると、ヘッダーとテーブルの両方が、列幅、列間隔、水平フリックに関して同期します。

model が明示的に設定されていない場合、ヘッダーはsyncViewのモデルを使用して列にラベルを付けます。

model およびTableViewも参照してください


textRole : string

このプロパティは、各ヘッダーセルにテキストを表示するために使用されるモデルの役割を保持します。

モデルに複数のロールがある場合、textRoleを設定することで、どのロールを表示するかを決定することができます。

モデルがQAbstractItemModel の場合、デフォルトは "display "となります。

モデルのroleNames() が textRole で指定されたロールを提供しない場合、警告が出されます。この警告は、textRole を設定することで消すことができます。

QAbstractItemModel::roleNames()も参照してください


© 2025 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.