Auf dieser Seite

SearchField QML Type

Ein spezielles Eingabefeld, das für die Suchfunktion vorgesehen ist. Mehr...

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

Control

Eigenschaften

Signale

Methoden

Ausführliche Beschreibung

SearchField ist ein spezielles Eingabefeld, das für Suchfunktionen konzipiert ist. Das Steuerelement umfasst ein Textfeld, Symbole zum Suchen und Löschen sowie ein Popup-Fenster, in dem Vorschläge oder Suchergebnisse angezeigt werden.

Hinweis: Der iOS-Stil bietet kein integriertes Popup für SearchField, um das native Look-and-Feel beizubehalten. Wenn dennoch ein Popup gewünscht wird, muss dieses vom Benutzer definiert werden.

Anzeigen von SearchField

SearchField bietet zwei optionale, integrierte Anzeigeschaltflächen: „ searchIndicator “ und „ clearIndicator “.

Dabei handelt es sich nicht um Indikatoren im Sinne von „ BusyIndicator “ oder „ ProgressBar “. Stattdessen sind es interaktive Steuerelemente, die in das Feld eingebettet sind (ähnlich den Auf-/Ab-Schaltflächen in „ SpinBox “). Das Drücken von „ searchIndicator “ löst „ searchButtonPressed “ aus, und das Drücken von „ clearIndicator “ löst „ clearButtonPressed “ aus.

Zusätzlich zur Bereitstellung der Aktionen liefern die Indikator-Schaltflächen Interaktionszustände (gedrückt/mit der Maus darüber, im Fokus usw.), die von Stilen genutzt werden können.

Anpassen des Inhalts der Indikatoren

Die Eigenschaften „ searchIndicator “ und „ clearIndicator “ sind schreibgeschützt. Die Anpassung erfolgt über ihre internen Eigenschaften.

Insbesondere wird der visuelle Inhalt der Schaltfläche durch das Element „ indicator “ bereitgestellt, das beschreibbar ist. Dadurch kann der Standardinhalt ersetzt oder vollständig entfernt werden.

Beispiel: So entfernen Sie beide Symbol-Icons:

SearchField {
    searchIndicator.indicator: null
    clearIndicator.indicator: null
}

Dies ist ein unterstütztes Anpassungsszenario. Verschiedene „SearchField“-Varianten können eine der Schaltflächen weglassen (z. B. nur eine Suchschaltfläche bereitstellen) oder den Inhalt der Anzeigen durch ein alternatives Element ersetzen (z. B. ein Mikrofonsymbol zum Auslösen der Spracheingabe).

SearchField-Modellrollen

„SearchField“ kann Standarddatenmodelle visualisieren, die die Rolle „ modelData “ bereitstellen:

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

Bei der Verwendung von Modellen mit mehreren benannten Rollen muss „SearchField“ so konfiguriert werden, dass es für seine Instanzen „ text “ und „ delegate “ ein bestimmtes „ text role “ 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" }
}

SortFilterProxyModel {
    id: fruitFilter
    sourceModel: fruitModel
    sorters: [
        RoleSorter {
            roleName: "name"
        }
    ]
    filters: [
        FunctionFilter {
            property var regExp: new RegExp(fruitSearch.text, "i")
            onRegExpChanged: invalidate()
            function filter(name: string): bool {
                return regExp.test(name);
            }
        }
    ]
}

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

Siehe auch „ searchIndicator“ , „ clearIndicator “, „ searchButtonPressed “ und „ clearButtonPressed “.

Dokumentation zu den Eigenschaften

clearIndicator group

clearIndicator.hovered : bool

clearIndicator.implicitIndicatorHeight : real

clearIndicator.implicitIndicatorWidth : real

clearIndicator.indicator : Item

clearIndicator.pressed : bool

Diese gruppierte Eigenschaft enthält das Indikatorelement „clearIndicator“ und die dazugehörigen Eigenschaften.

Diese Eigenschaft enthält den „Clear“-Indikator. Durch Drücken dieses Indikators wird „ clearButtonPressed “ ausgelöst.

Sie wird bereitgestellt, damit Stile und Anwendungen sie über ihre internen Eigenschaften anpassen können (beispielsweise durch Ersetzen oder Entfernen des „ clearIndicator “ über „ clearIndicator.indicator “ oder durch Reagieren auf Interaktionszustände wie „gedrückt“ und „Mauszeiger darüber“).

Siehe auch „ SearchField's Indicators “.

currentIndex : int

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

Ihr Wert ist „ -1 “, wenn kein Vorschlag ausgewählt ist.

„currentIndex“ wird nicht automatisch geändert, wenn sich das Modell ändert oder wenn der Benutzer Text eingibt oder bearbeitet. Er wird nur aktualisiert, wenn der Benutzer explizit einen Vorschlag auswählt, entweder durch Klicken auf ein Element im Popup oder durch Drücken der Eingabetaste bei einem markierten Element.

„currentIndex“ kann gesetzt werden, beispielsweise um beim Start das erste Element im Modell anzuzeigen. Stellen Sie zuvor sicher, dass das Modell nicht leer ist:

SearchField {
    id: searchField
    suggestionModel: ListModel {
        ListElement { value: "123,456" }
    }
    textRole: "value"

    Component.onCompleted: {
        if (suggestionModel.count > 0) {
           text = suggestionModel.get(0).value
           currentIndex = 0
       }
    }
}

Siehe auch ` activated()`, ` text` und ` highlightedIndex`.

cursorPosition : int [since 6.12]

Die Position des Cursors im Textfeld. Der Cursor befindet sich zwischen Zeichen.

Hinweis: Die Zeichen beziehen sich in diesem Fall auf die Zeichenkette aus „ QChar “-Objekten, also auf 16-Bit-Unicode-Zeichen, und die Position wird als Index in dieser Zeichenkette betrachtet. Dies entspricht nicht unbedingt einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie beispielsweise bei Surrogatpaaren, sprachlichen Ligaturen oder diakritischen Zeichen.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

delegate : Component

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

Es wird empfohlen, ` ItemDelegate ` (oder ein anderes Derivat von ` AbstractButton `) als Delegat zu verwenden. Dadurch wird sichergestellt, dass die Interaktion wie erwartet funktioniert und sich das Popup bei Bedarf automatisch schließt. Werden andere Typen als Delegat verwendet, muss das Popup manuell geschlossen werden. Wenn beispielsweise ` MouseArea ` verwendet wird:

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

Seit Qt 6.11 übernimmt „ SearchField “ nicht mehr die Eigentümerschaft des Delegaten.

delegateModel : model [read-only]

Diese Eigenschaft enthält das Modell, das Delegat-Instanzen für das Suchfeld bereitstellt.

Sie wird in der Regel im „ contentItem “ des „ popup “ einem „ ListView “ zugewiesen.

highlightedIndex : int [read-only]

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

Wenn der markierte Eintrag aktiviert wird, wird das Popup geschlossen, „ currentIndex “ wird entsprechend „ highlightedIndex “ aktualisiert und diese Eigenschaft wird auf „ -1 “ zurückgesetzt, was anzeigt, dass derzeit kein Eintrag markiert ist.

Siehe auch highlighted() und currentIndex.

live : bool

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

Bei der Einstellung „ true “ wird das Signal „ searchTriggered()“ bei jeder Textänderung ausgegeben, sodass Sie auf jeden Tastenanschlag reagieren können. Bei der Einstellung „ false “ wird das Signal „ searchTriggered()“ nur ausgegeben, wenn der Benutzer die Eingabetaste oder die Return-Taste drückt.

Siehe auch searchTriggered().

placeholderText : string [since 6.12]

Diese Eigenschaft enthält den Hinweis, der im Feld „ SearchField “ angezeigt wird, bevor der Benutzer Text eingibt.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

Diese Eigenschaft enthält das Popup-Fenster.

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

onSpecialEvent: searchField.popup.close()

searchIndicator group

searchIndicator.hovered : bool

searchIndicator.implicitIndicatorHeight : real

searchIndicator.implicitIndicatorWidth : real

searchIndicator.indicator : Item

searchIndicator.pressed : bool

Diese gruppierte Eigenschaft enthält das Indikatorelement „searchIndicator“ und die dazugehörigen Eigenschaften.

Diese Eigenschaft enthält den Suchindikator. Durch Anklicken wird „ searchButtonPressed “ ausgelöst.

Sie ist öffentlich zugänglich, sodass Stile und Anwendungen sie über ihre internen Eigenschaften anpassen können (z. B. durch Ersetzen oder Entfernen des „ searchIndicator “ über „ searchIndicator.indicator “ oder durch Reagieren auf Interaktionszustände wie „gedrückt“ und „Mauszeiger darüber“).

Siehe auch „ SearchField's Indicators “.

selectTextByMouse : bool [since 6.12]

Diese Eigenschaft legt fest, ob der Text mit der Maus ausgewählt werden kann.

Der Standardwert ist „ true “.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

selectedText : string [read-only, since 6.12]

Diese schreibgeschützte Eigenschaft enthält den aktuell ausgewählten Text.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

selectionEnd : int [read-only, since 6.12]

Die Cursorposition nach dem letzten Zeichen der aktuellen Auswahl.

Diese Eigenschaft ist schreibgeschützt. Um die Auswahl zu ändern, verwenden Sie „select(start, end)“, „ selectAll()“ oder „ selectWord()“.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

Siehe auch ` selectionStart`, ` cursorPosition` und ` selectedText`.

selectionStart : int [read-only, since 6.12]

Die Cursorposition vor dem ersten Zeichen der aktuellen Auswahl.

Diese Eigenschaft ist schreibgeschützt. Um die Auswahl zu ändern, verwenden Sie `select(start, end)`, ` selectAll()` oder ` selectWord()`.

Diese Eigenschaft wurde in Qt 6.12 eingeführt.

Siehe auch ` selectionEnd`, ` cursorPosition` und ` selectedText`.

suggestionCount : int [read-only]

Diese Eigenschaft gibt die Anzahl der Vorschläge an, 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 der Vorschläge oder die Suchlogik aus.

Siehe auch searchTriggered() und textEdited().

textRole : string

Diese Eigenschaft enthält die Modellrolle, die zur Anzeige von Elementen im Vorschlagsmodell verwendet wird, das in der Popup-Liste angezeigt wird.

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

Signal-Dokumentation

void accepted()

Dieses Signal wird ausgelöst, 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 zu übermitteln.

Hinweis: Der entsprechende Handler lautet „ onAccepted “.

Siehe auch searchTriggered().

void activated(int index)

Dieses Signal wird ausgelöst, wenn das Element unter index vom Benutzer aktiviert wird.

Ein Element wird aktiviert, wenn es bei geöffnetem Popup ausgewählt wird, wodurch sich das Popup schließt (und sich currentIndex ändert). Die Eigenschaft „ currentIndex “ wird auf „ index “ gesetzt.

Hinweis: Der entsprechende Handler ist „ onActivated “.

Siehe auch „ currentIndex “.

void clearButtonPressed()

Dieses Signal wird beim Drücken der Löschtaste ausgegeben.

Hinweis: Der entsprechende Handler lautet onClearButtonPressed.

Siehe auch searchButtonPressed().

void highlighted(int index)

Dieses Signal wird ausgelöst, wenn der Eintrag unter index in der Popup-Liste vom Benutzer markiert wird.

Das Signal „highlighted“ wird nur ausgelöst, wenn das Popup geöffnet ist und ein Eintrag markiert wird, jedoch nicht unbedingt „ activated “.

Hinweis: Der entsprechende Handler ist „ onHighlighted “.

Siehe auch „ highlightedIndex “.

void searchButtonPressed()

Dieses Signal wird ausgelöst, wenn die Suchschaltfläche gedrückt wird.

Hinweis: Der entsprechende Handler lautet „ onSearchButtonPressed “.

Siehe auch clearButtonPressed().

void searchTriggered()

Dieses Signal wird ausgegeben, wenn eine Suchaktion gestartet wird.

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

Dieses Signal eignet sich ideal zum Auslösen von Suchvorgängen sowohl auf Abruf als auch in Echtzeit während der Eingabe durch den Benutzer, je nach gewünschtem Interaktionsmodell.

Hinweis: Der entsprechende Handler ist „ onSearchTriggered “.

Siehe auch „ accepted()“ und „ textEdited()“.

void textEdited()

Dieses Signal wird jedes Mal ausgelöst, wenn der Benutzer den Text im Suchfeld ändert, in der Regel bei jedem Tastendruck.

Hinweis: Der entsprechende Handler ist „ onTextEdited “.

Siehe auch searchTriggered().

Methodendokumentation

[since 6.12] void deselect()

Hebt die aktive Textauswahl auf.

Diese Methode wurde in Qt 6.12 eingeführt.

Siehe auch selectedText, selectionStart und selectionEnd.

[since 6.12] void select(int start, int end)

Bewirkt, dass der Text von start bis end ausgewählt wird.

Liegt entweder start oder end außerhalb des Bereichs, wird die Auswahl nicht geändert.

Nach dem Aufruf dieser Methode wird selectionStart zum kleineren und selectionEnd zum größeren Wert (unabhängig von der Reihenfolge, in der die Parameter an diese Methode übergeben wurden).

Diese Methode wurde in Qt 6.12 eingeführt.

Siehe auch „ selectionStart “ und „ selectionEnd “.

[since 6.12] void selectAll()

Wählt den gesamten Text im Textfeld des Steuerelements aus.

Diese Methode wurde in Qt 6.12 eingeführt.

[since 6.12] void selectWord()

Wählt das Wort aus, das der aktuellen Cursorposition am nächsten liegt.

Diese Methode wurde in Qt 6.12 eingeführt.

Siehe auch cursorPosition und selectedText.

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