Auf dieser Seite

SelectionRectangle QML Type

Dient zur Auswahl von Tabellenzellen innerhalb eines „ TableView “. Mehr...

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

Control

Eigenschaften

Zugehörige Eigenschaften

Ausführliche Beschreibung

Auswahlrechteck zum Auswählen von Tabellenelementen

SelectionRectangle dient zur Auswahl von Tabellenzellen in einem TableView. Damit kann der Benutzer eine Auswahl starten, indem er den Zeiger innerhalb des Ansichtsbereichs zieht oder eine Zelle lange gedrückt hält.

Damit ein „SelectionRectangle“ Zellen auswählen kann, muss dem „ TableView “ ein „ ItemSelectionModel “ zugewiesen sein. Das „ ItemSelectionModel “ speichert alle am Modell vorgenommenen Auswahlen und kann verwendet werden, um abzufragen, welche Zellen der Benutzer ausgewählt hat.

Das folgende Beispiel zeigt, wie Sie ein „SelectionRectangle“ auf ein „ TableView “ ausrichten können:

    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
    }

Hinweis: Ein „SelectionRectangle“ selbst wird nicht als Teil einer Auswahl angezeigt. Es werden ausschließlich die Delegaten (wie „ topLeftHandle “ und „ bottomRightHandle “) verwendet. Sie sollten auch „ rendering the TableView delegate as selected “ in Betracht ziehen.

Siehe auch „ TableView “, „ TableView::selectionModel “ und „ ItemSelectionModel “.

Dokumentation zu den Eigenschaften

active : bool [read-only]

Diese Eigenschaft ist „ true “, während der Benutzer eine Auswahl vornimmt. Die Auswahl ist ab dem Zeitpunkt aktiv, an dem der Benutzer mit der Auswahl beginnt, bis die Auswahl wieder aufgehoben wird, beispielsweise durch Antippen innerhalb des Ansichtsbereichs.

bottomRightHandle : Component

Diese Eigenschaft enthält den Delegaten, der in der Mitte der oberen linken Ecke des Auswahlrechtecks angezeigt wird. Wenn ein Griff vorhanden ist, kann der Benutzer diesen ziehen, um die Auswahl anzupassen.

Der Griff wird standardmäßig nicht ausgeblendet, wenn eine Auswahl entfernt wird. Stattdessen ist dies Aufgabe des Delegaten, um benutzerdefinierte Ausblendanimationen zu ermöglichen. Der einfachste Weg, um sicherzustellen, dass der Griff ausgeblendet wird, besteht darin, „ visible “ einfach an den Zustand „ active “ von „ SelectionRectangle “ zu binden:

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

Setzen Sie diese Eigenschaft auf „ null “, wenn Sie keinen Auswahl-Handle unten rechts wünschen.

Siehe auch „ topLeftHandle “.

dragging : bool [read-only]

Diese Eigenschaft ist „ true “, wenn der Benutzer den Mauszeiger oder einen Griff zieht, um das Auswahlrechteck anzupassen.

selectionMode : enumeration

Diese Eigenschaft legt fest, wann eine Auswahl beginnen soll.

KonstanteBeschreibung
SelectionRectangle.DragEine Auswahl wird durch Ziehen des Zeigers innerhalb des Ansichtsbereichs gestartet
SelectionRectangle.PressAndHoldEine Auswahl wird durch Drücken und Halten auf einer Zelle gestartet
SelectionRectangle.AutoSelectionRectangle wählt den zu verwendenden Modus basierend auf der Eigenschaft „ target “ und dem verwendeten Eingabegerät aus. Dies bedeutet normalerweise „ Drag “ bei Verwendung einer Maus und „ PressAndHold “ auf einem Touchscreen. „ Drag “ wird jedoch nur verwendet, wenn es nicht mit dem „Flicking“ in Konflikt steht. Eine Möglichkeit, Konflikte zu vermeiden, besteht darin, das „Mouse-Drag-Flicking“ zu deaktivieren, indem „ acceptedButtons “ auf „ Qt.NoButton “ gesetzt wird. In diesem Fall funktionieren das Scrollen mit dem Mausrad oder dem Touchpad sowie das „Flicking“ auf dem Touchscreen weiterhin, und die Auswahl auf dem Touchscreen kann durch Drücken und Halten gestartet werden. Eine weitere Möglichkeit besteht darin, „ interactive “ auf „ false “ zu setzen, wodurch das Flicking und das Scrollen vollständig deaktiviert werden (dies sollte möglicherweise nur vorübergehend erfolgen, beispielsweise in einem bestimmten Modus Ihrer Benutzeroberfläche). Eine weitere Möglichkeit ist es, die „ TableView “-Funktion in eine „ ScrollView “-Funktion einzubinden (wo das Flicking standardmäßig für Mausereignisse deaktiviert ist).

Der Standardwert lautet „ Auto “.

target : Item

Diese Eigenschaft enthält das ` TableView `, auf das die ` SelectionRectangle ` angewendet werden soll.

topLeftHandle : Component

Diese Eigenschaft enthält den Delegaten, der in der Mitte der oberen linken Ecke des Auswahlrechtecks angezeigt wird. Wenn ein Griff vorhanden ist, kann der Benutzer diesen ziehen, um die Auswahl anzupassen.

Der Griff wird standardmäßig nicht ausgeblendet, wenn eine Auswahl aufgehoben wird. Stattdessen ist dies Aufgabe des Delegaten, um benutzerdefinierte Ausblendanimationen zu ermöglichen. Der einfachste Weg, um sicherzustellen, dass der Griff ausgeblendet wird, besteht darin, „ visible “ einfach an den Zustand „ active “ von „ SelectionRectangle “ zu binden:

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

Setzen Sie diese Eigenschaft auf „ null “, wenn Sie keinen Auswahlgriff oben links wünschen.

Siehe auch „ bottomRightHandle “.

Dokumentation zu angehängten Eigenschaften

SelectionRectangle.control : SelectionRectangle [attached]

Diese angehängte Eigenschaft enthält die „ SelectionRectangle “, die die Delegate-Instanz verwaltet. Sie ist an jede Handle-Instanz angehängt.

SelectionRectangle.dragging : bool [attached]

Diese zugeordnete Eigenschaft ist „ true “, wenn der Benutzer den Griff zieht. Sie ist jeder Griff-Instanz zugeordnet.

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