Dire che ho 10 nomi in un QListWidget
(che è nascosto) e uno QLineEdit
. Ora se digito la lettera "a" nella riga Modifica dovrebbe visualizzare un menu a discesa di tutti quei nomi nel widget elenco che iniziano con la lettera "A". l'utente può selezionare usando un mouse o una tastiera (dato che ci sarà una barra di scorrimento verticale). Non sono sicuro che un QLineEdit
potrebbe farlo. Ma mi piacerebbe sapere cosa c'è là fuori per realizzare questo.Come realizzare i suggerimenti parola a discesa in Qt?
6
A
risposta
18
È possibile utilizzare QCompleter
che fornisce un modo per il completamento automatico in widget come QLineEdit
e QComboBox
. Quando l'utente inizia a digitare una parola, QCompleter
suggerisce possibili modi per completare la parola, in base a un elenco di parole.
Un esempio dalla documentazione Qt:
QStringList wordList;
wordList << "alpha" << "omega" << "omicron" << "zeta";
QLineEdit *lineEdit = new QLineEdit(this);
QCompleter *completer = new QCompleter(wordList, this);
completer->setCaseSensitivity(Qt::CaseInsensitive);
lineEdit->setCompleter(completer);
Grazie Ill dare a questo una prova e palo – Rajeshwar
Non c'è nemmeno bisogno di popolare il 'QCompleter' con i dati manualmente, è possibile passare solo il modello che il tuo 'QListWidget' sta già usando chiamando la funzione' QAbstractItemView :: model() '. – RobbieE
Molto più semplice e diretto rispetto all'esempio QtProject. Grazie. – bmahf