SearchField QML Type

Ein spezialisiertes Eingabefeld, das für Suchfunktionen verwendet werden kann. Mehr...

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

Control

Eigenschaften

Signale

Detaillierte Beschreibung

SearchField ist ein spezialisiertes Eingabefeld, das für die Suchfunktionalität entwickelt wurde. Das Steuerelement enthält ein Textfeld, Such- und Löschsymbole und ein Popup, das Vorschläge oder Suchergebnisse anzeigt.

SearchField Modell-Rollen

SearchField ist in der Lage, Standarddatenmodelle zu visualisieren, die die Rolle modelData anbieten:

  • Modelle, die nur eine Rolle haben
  • Modelle, die keine benannten Rollen haben (JavaScript Array, Integer)

Bei der Verwendung von Modellen, die mehrere benannte Rollen haben, muss SearchField so konfiguriert werden, dass es eine bestimmte text role für seine text und delegate Instanzen verwendet.

ListModel {
    id : fruitModel
    ListElement { name: "Apple"; color: "green" }
    ListElement { name: "Cherry"; color: "red" }
    ListElement { name: "Banana"; color: "yellow" }
    ListElement { name: "Orange"; color: "orange" }
    ListElement { name: "WaterMelon"; color: "pink" }
}

QSortFilterProxyModel {
    id: fruitFilter
    sourceModel: fruitModel
    filterRegularExpression: RegExp(fruitSearch.text, "i")
    filterRole: 0 // needs to be set explicitly
}

SearchField {
    id: fruitSearch
    suggestionModel: fruitFilter
    textRole: "name"
    anchors.horizontalCenter: parent.horizontalCenter
}

Eigenschaft Dokumentation

clearIndicator : real [read-only]

Diese Eigenschaft enthält den Clear-Indikator.


currentIndex : int

Diese Eigenschaft enthält den Index des aktuell ausgewählten Vorschlags in der Popup-Liste.

Der Standardwert ist -1, wenn count 0 ist, und ansonsten 0.

Siehe auch activated(), text, und highlightedIndex.


delegate : Component

Diese Eigenschaft enthält einen Delegaten, der ein Element im Suchfeld-Popup anzeigt.

Es wird empfohlen, ItemDelegate (oder ein anderes AbstractButton Derivat) als Delegat zu verwenden. Dadurch wird sichergestellt, dass die Interaktion wie erwartet funktioniert und das Popup-Fenster automatisch geschlossen wird, wenn dies erforderlich ist. Wenn andere Typen als Delegat verwendet werden, muss das Popup-Fenster manuell geschlossen werden. Zum Beispiel, wenn MouseArea verwendet wird:

delegate: Rectangle {
    // ...
    MouseArea {
        // ...
        onClicked: searchField.popup.close()
    }
}

delegateModel : model [read-only]

Diese Eigenschaft enthält das Modell, das Delegateninstanzen für das Suchfeld bereitstellt.

Sie wird typischerweise einem ListView in der contentItem der popup zugewiesen.


highlightedIndex : int [read-only]

Diese Eigenschaft enthält den Index des aktuell hervorgehobenen Elements in der Popup-Liste.

Wenn das hervorgehobene Element aktiviert wird, schließt sich das Popup, currentIndex wird aktualisiert, um mit highlightedIndex übereinzustimmen, und diese Eigenschaft wird auf -1 zurückgesetzt, was anzeigt, dass derzeit kein Element hervorgehoben ist.

Siehe auch highlighted() und currentIndex.


live : bool

Diese Eigenschaft enthält einen booleschen Wert, der bestimmt, ob die Suche bei jeder Textbearbeitung ausgelöst wird.

Wenn sie auf true gesetzt ist, wird das Signal searchTriggered() bei jeder Textänderung ausgegeben, so dass Sie auf jeden Tastenanschlag reagieren können. Bei false wird das Signal searchTriggered() nur ausgegeben, wenn der Benutzer die Enter- oder Return-Taste drückt.

Siehe auch searchTriggered().


Diese Eigenschaft enthält das Popup.

Das Popup-Fenster kann bei Bedarf manuell geöffnet oder geschlossen werden:

onSpecialEvent: searchField.popup.close()

searchIndicator : real [read-only]

Diese Eigenschaft enthält den Suchindikator.


suggestionCount : int [read-only]

Diese Eigenschaft enthält die Anzahl der Vorschläge, die aus dem Vorschlagsmodell angezeigt werden sollen.


suggestionModel : model

Diese Eigenschaft enthält das Datenmodell, das zur Anzeige von Suchvorschlägen im Popup-Menü verwendet wird.

SearchField {
    textRole: "age"
    suggestionModel: ListModel {
        ListElement { name: "Karen"; age: "66" }
        ListElement { name: "Jim"; age: "32" }
        ListElement { name: "Pamela"; age: "28" }
    }
}

Siehe auch textRole.


text : string

Diese Eigenschaft enthält den aktuellen Eingabetext im Suchfeld.

Der Text ist an die Benutzereingabe gebunden und löst Aktualisierungen des Vorschlags oder der Suchlogik aus.

Siehe auch searchTriggered() und textEdited().


textRole : string

Diese Eigenschaft enthält die Modellrolle, die verwendet wird, um Elemente im Vorschlagsmodell anzuzeigen, die in der Popup-Liste erscheinen.

Wenn das Modell mehrere Rollen hat, kann textRole gesetzt werden, um zu bestimmen, welche Rolle angezeigt werden soll.


Signal Dokumentation

void accepted()

Dieses Signal wird ausgegeben, wenn der Benutzer seine Eingabe durch Drücken der Enter- oder Return-Taste bestätigt.

Dieses Signal wird in der Regel verwendet, um eine Suche oder Aktion auf der Grundlage der endgültigen Texteingabe auszulösen, und es zeigt die Absicht des Benutzers an, die Abfrage abzuschließen oder abzuschicken.

Hinweis: Der entsprechende Handler ist onAccepted.

Siehe auch searchTriggered().


void activated(int index)

Dieses Signal wird ausgegeben, wenn das Element auf index durch den Benutzer aktiviert wird.

Ein Element wird aktiviert, wenn es ausgewählt wird, während das Popup geöffnet ist, wodurch das Popup geschlossen wird (und currentIndex sich ändert). Die Eigenschaft currentIndex wird auf index gesetzt.

Hinweis: Der entsprechende Handler ist onActivated.

Siehe auch currentIndex.


void highlighted(int index)

Dieses Signal wird ausgegeben, wenn das Element unter index in der Popup-Liste vom Benutzer hervorgehoben wird.

Das Signal highlighted wird nur ausgegeben, wenn das Popup geöffnet ist und ein Element hervorgehoben ist, aber nicht unbedingt activated.

Hinweis: Der entsprechende Handler ist onHighlighted.

Siehe auch highlightedIndex.


void searchTriggered()

Dieses Signal wird ausgegeben, wenn eine Suchaktion eingeleitet wird.

Es tritt in zwei Fällen auf: 1. Wenn die Enter- oder Return-Taste gedrückt wird, wird es zusammen mit dem Signal accepted() ausgegeben. 2. Wenn der Text bearbeitet wird und die Eigenschaft live auf true gesetzt ist, wird dieses Signal ausgegeben.

Dieses Signal ist ideal für die Einleitung von Suchvorgängen sowohl bei Bedarf als auch in Echtzeit während der Eingabe durch den Benutzer, je nach dem gewünschten Interaktionsmodell.

Hinweis: Der entsprechende Handler ist onSearchTriggered.

Siehe auch accepted() und textEdited().


void textEdited()

Dieses Signal wird jedes Mal ausgegeben, wenn der Benutzer den Text im Suchfeld ändert, typischerweise bei jedem Tastendruck.

Hinweis: Der entsprechende Handler ist onTextEdited.

Siehe auch searchTriggered().


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