The WSuggestionPopup class is a widget which pops up to assist in editing a text area or line edit through auto completion. This widget may be associated with one or more WFormWidgets (typically a WLineEdit or a WTextArea).
The popup provides the user with suggestions to enter input. The popup can be used by one or more text editors, using forEdit(). The popup will show when the user starts editing the edit field, or when the user opens the suggestions explicitly using a drop down icon or with the down key. In the example below, the popup positions itself on top of the edit field.
To style the suggestions, you should style the <span> element inside this widget, and the <span>."sel" element to style the current selection.
You can also limit the maximum height of the popup by using setMaximumSize(). In this case, scrolling is supported (similar to a combo-box).
WSuggestionPopup is a MVC class (model-view-controller). By default a WStringListModel is used. The member methods clearSuggestions() and addSuggestion() manipulate this model. You can set another model with setModel(). See the Combo box section for an example.
By default, the popup implements all filtering client-side. To support large datasets, you may enable server-side filtering of suggestions based on the input. The server-side filtering may provide a coarse filtering using a fixed size prefix of the entered text, and complement the client-side filtering. To enable server-side filtering, use setFilterLength() and listen to filter notification using the modelFilter() signal. Whenever a filter event is generated you can adjust the model's content according to the filter (e.g. using a WSortFilterProxyModel).
You can find several more advanced examples in the Wt distribution directory examples/feature/suggestionpopup/. In the SuggestionPopup.C class you can explore different functions.