SearchField QML Type
A specialized input field designed to use for search functionality. More...
Import Statement: | import QtQuick.Controls |
Since: | Qt 6.10 |
Inherits: |
Properties
- clearIndicator : real
- currentIndex : int
- delegate : Component
- delegateModel : model
- highlightedIndex : int
- live : bool
- popup : Popup
- searchIndicator : real
- suggestionCount : int
- suggestionModel : model
- text : string
- textRole : string
Signals
- void accepted()
- void activated(int index)
- void highlighted(int index)
- void searchTriggered()
- void textEdited()
Detailed Description
SearchField is a specialized input field designed to use for search functionality. The control includes a text field, search and clear icons, and a popup that displays suggestions or search results.
SearchField Model Roles
SearchField is able to visualize standard data models that provide the modelData
role:
- models that have only one role
- models that do not have named roles (JavaScript array, integer)
When using models that have multiple named roles, SearchField must be configured to use a specific text role for its text and delegate instances.
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 }
Property Documentation
clearIndicator : real |
This property holds the clear indicator.
currentIndex : int |
This property holds the index of the currently selected suggestion in the popup list.
The default value is -1
when count is 0
, and 0
otherwise.
See also activated(), text, and highlightedIndex.
delegate : Component |
This property holds a delegate that presents an item in the search field popup.
It is recommended to use ItemDelegate (or any other AbstractButton derivatives) as the delegate. This ensures that the interaction works as expected, and the popup will automatically close when appropriate. When other types are used as the delegate, the popup must be closed manually. For example, if MouseArea is used:
delegate: Rectangle { // ... MouseArea { // ... onClicked: searchField.popup.close() } }
delegateModel : model |
This property holds the model that provides delegate instances for the search field.
It is typically assigned to a ListView in the contentItem of the popup.
highlightedIndex : int |
This property holds the index of the currently highlighted item in the popup list.
When the highlighted item is activated, the popup closes, currentIndex is updated to match highlightedIndex
, and this property is reset to -1
, indicating that no item is currently highlighted.
See also highlighted() and currentIndex.
live : bool |
This property holds a boolean value that determines whether the search is triggered on every text edit.
When set to true
, the searchTriggered() signal is emitted on each text change, allowing you to respond to every keystroke. When set to false
, the searchTriggered() is only emitted when the user presses the Enter or Return key.
See also searchTriggered().
popup : Popup |
This property holds the popup.
The popup can be opened or closed manually, if necessary:
onSpecialEvent: searchField.popup.close()
searchIndicator : real |
This property holds the search indicator.
suggestionCount : int |
This property holds the number of suggestions to display from the suggestion model.
suggestionModel : model |
This property holds the data model used to display search suggestions in the popup menu.
SearchField { textRole: "age" suggestionModel: ListModel { ListElement { name: "Karen"; age: "66" } ListElement { name: "Jim"; age: "32" } ListElement { name: "Pamela"; age: "28" } } }
See also textRole.
text : string |
This property holds the current input text in the search field.
Text is bound to the user input, triggering suggestion updates or search logic.
See also searchTriggered() and textEdited().
textRole : string |
This property holds the model role used to display items in the suggestion model shown in the popup list.
When the model has multiple roles, textRole
can be set to determine which role should be displayed.
Signal Documentation
void accepted() |
This signal is emitted when the user confirms their input by pressing the Enter or Return key.
This signal is typically used to trigger a search or action based on the final text input, and it indicates the user's intention to complete or submit the query.
Note: The corresponding handler is onAccepted
.
See also searchTriggered().
void activated(int index) |
This signal is emitted when the item at index is activated by the user.
An item is activated when it is selected while the popup is open, causing the popup to close (and currentIndex to change). The currentIndex property is set to index.
Note: The corresponding handler is onActivated
.
See also currentIndex.
void highlighted(int index) |
This signal is emitted when the item at index in the popup list is highlighted by the user.
The highlighted signal is only emitted when the popup is open and an item is highlighted, but not necessarily activated.
Note: The corresponding handler is onHighlighted
.
See also highlightedIndex.
void searchTriggered() |
This signal is emitted when a search action is initiated.
It occurs in two cases: 1. When the Enter or Return key is pressed, it will be emitted together with accepted() signal 2. When the text is edited and if the live property is set to true
, this signal will be emitted.
This signal is ideal for initiating searches both on-demand and in real-time as the user types, depending on the desired interaction model.
Note: The corresponding handler is onSearchTriggered
.
See also accepted() and textEdited().
void textEdited() |
This signal is emitted every time the user modifies the text in the search field, typically with each keystroke.
Note: The corresponding handler is onTextEdited
.
See also 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.