Suchfeld mit QLineEdit und QCompleter
Verfasst: 1. Mai 2014 15:29
Ich habe QLineEdit Widget, das als Suchfeld dient. Bei einer Eingabe wird über das QLineEdit::textChanged(const QString&) Signal eine Anfrage mit dem Suchtext an einen Server gestellt. Über ein Callback erhalte ich die Suchvorschläge vom Server. Daraufhin möchte ich über ein QCompleter die Vorschläge anzeigen. Irgendwie funktioniert die setCompleter() Methode scheinbar nicht in meiner Callback Funktion.
Folgender Code skizziert grob das Problem:
Die Callbackfunktion wird mit einem gefüllten QStringList Objekt aufgerufen, allerdings wird kein Completer sichtbar. Wenn ich die setCompleter() Methode in on_searchfield_textChanged() aufrufe, dann erscheint der Completer. Wieso funktioniert das nicht mit der Callbackfunktion?
lg
Developer
Folgender Code skizziert grob das Problem:
Code: Alles auswählen
void AppWindow::resultCallback(const QStringList &data)
{
QCompleter *completer = new QCompleter(data, this);
completer->setCaseSensitivity(Qt::CaseInsensitive);
completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
ui->searchfield->setCompleter(completer);
}
void AppWindow::on_searchfield_textChanged(const QString &text)
{
if (!text.isEmpty())
{
network.search(text); // Server anfragen und Ergebnis über resultCallback() mitteilen
}
} lg
Developer