Sur cette page

SelectionRectangle QML Type

Permet de sélectionner des cellules d'un tableau dans un « TableView ». En savoir plus...

Import Statement: import QtQuick.Controls
Since: Qt 6.2
Inherits:

Control

Propriétés

Propriétés associées

Description détaillée

Rectangle de sélection permettant de sélectionner des éléments du tableau

SelectionRectangle sert à sélectionner des cellules d'un tableau dans un TableView. Il permet à l'utilisateur de lancer une sélection en faisant glisser le pointeur à l'intérieur de la zone d'affichage ou en appuyant longuement sur une cellule.

Pour qu’un SelectionRectangle puisse sélectionner des cellules, l’ TableView doit disposer d’un ItemSelectionModel. L’ ItemSelectionModel stocke toutes les sélections effectuées sur le modèle et permet de déterminer quelles cellules l’utilisateur a sélectionnées.

L’exemple suivant montre comment faire en sorte qu’un SelectionRectangle cible un TableView:

    TableView {
        id: tableView
        anchors.fill: parent
        clip: true
        acceptedButtons: Qt.NoButton // mouse-drag changes selection

        model: TableModel {
            TableModelColumn { display: "name" }
            TableModelColumn { display: "age" }
            rows: [ { "name": "Harry", "age": "11" },
                    { "name": "Hedwig", "age": "8" } ]
        }

        selectionModel: ItemSelectionModel {
            model: tableView.model
        }

        delegate: TableViewDelegate { padding: 2 }
    }

    SelectionRectangle {
        target: tableView
    }

Remarque : un SelectionRectangle n’apparaît pas en tant que tel dans une sélection. Seuls les délégués (tels que topLeftHandle et bottomRightHandle) sont utilisés. Vous devriez également envisager l’utilisation de rendering the TableView delegate as selected.

Voir également TableView, TableView::selectionModel et ItemSelectionModel.

Documentation sur les propriétés

active : bool [read-only]

Cette propriété est définie sur « true » lorsque l'utilisateur effectue une sélection. La sélection reste active dès que l'utilisateur commence à sélectionner, et ce jusqu'à ce qu'elle soit annulée, par exemple en appuyant à l'intérieur de la fenêtre d'affichage.

bottomRightHandle : Component

Cette propriété contient le délégué qui s'affichera au centre du coin supérieur gauche du rectangle de sélection. Lorsqu'une poignée est fournie, l'utilisateur peut la faire glisser pour ajuster la sélection.

Par défaut, la poignée n’est pas masquée lorsqu’une sélection est supprimée. Il incombe au délégué de gérer cette situation afin de permettre des animations de fondu personnalisées. Le moyen le plus simple de s’assurer que la poignée finisse par être masquée consiste simplement à lier visible à l’état « active » de l’ SelectionRectangle:

SelectionRectangle {
    bottomRightHandle: Rectangle {
        width: 20
        height: 20
        visible: SelectionRectangle.control.active
    }
}

Définissez cette propriété sur ` null ` si vous ne souhaitez pas qu’une poignée de sélection s’affiche en bas à droite.

Voir également topLeftHandle.

dragging : bool [read-only]

Cette propriété prend la valeur « true » dès lors que l'utilisateur effectue un glissement du pointeur ou d'une poignée pour ajuster le rectangle de sélection.

selectionMode : enumeration

Cette propriété indique à quel moment une sélection doit commencer.

ConstanteDescription
SelectionRectangle.DragUne sélection commence en faisant glisser le pointeur à l'intérieur de la fenêtre d'affichage
SelectionRectangle.PressAndHoldUne sélection commence en appuyant sur une cellule et en maintenant la touche enfoncée
SelectionRectangle.AutoSelectionRectangle choisira le mode à utiliser en fonction de l’ target et du périphérique d’entrée utilisé. Cela signifie généralement « Drag » (glisser-déposer) avec une souris, et « PressAndHold » (flick) sur un écran tactile. Cependant, le « Drag » ne sera utilisé que s’il n’entre pas en conflit avec le « flicking ». Une façon d’éviter ce conflit consiste à désactiver le « flicking » par glissement de la souris en définissant acceptedButtons sur Qt.NoButton. Dans ce cas, le défilement à l’aide de la molette de la souris ou du pavé tactile continue de fonctionner, le « flicking » sur écran tactile continue de fonctionner, et la sélection sur écran tactile peut être lancée en appuyant longuement. Une autre solution consiste à définir interactive sur false, ce qui désactive complètement le « flicking » et le défilement (cette opération ne devrait peut-être être effectuée que temporairement, dans certains modes de votre interface utilisateur). Une autre solution encore consiste à placer l’ TableView à l’intérieur d’un ScrollView (où le « flicking », par défaut, est désactivé pour les événements de souris).

La valeur par défaut est Auto.

target : Item

Cette propriété contient l'TableView e sur laquelle l'SelectionRectangle e doit agir.

topLeftHandle : Component

Cette propriété contient le délégué qui s'affichera au centre du coin supérieur gauche du rectangle de sélection. Lorsqu'une poignée est fournie, l'utilisateur peut la faire glisser pour ajuster la sélection.

Par défaut, la poignée n’est pas masquée lorsqu’une sélection est supprimée. C’est au délégué qu’il revient de gérer cette opération, notamment pour permettre des animations de fondu personnalisées. Le moyen le plus simple de s’assurer que la poignée soit finalement masquée consiste simplement à lier visible à l’état « active » de l’ SelectionRectangle:

SelectionRectangle {
    topLeftHandle: Rectangle {
        width: 20
        height: 20
        visible: SelectionRectangle.control.active
    }
}

Définissez cette propriété sur « null » si vous ne souhaitez pas que la poignée de sélection apparaisse en haut à gauche.

Voir également bottomRightHandle.

Documentation sur les propriétés associées

SelectionRectangle.control : SelectionRectangle [attached]

Cette propriété associée contient l'SelectionRectangle e qui gère l'instance de délégué. Elle est associée à chaque instance de descripteur.

SelectionRectangle.dragging : bool [attached]

Cette propriété associée prendra la valeur « true » si l'utilisateur fait glisser la poignée. Elle est associée à chaque instance de poignée.

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