Search code examples
c++qtdrop-down-menuautocompleteqlineedit

How to accomplish drop down word suggestions in Qt?


Say I have 10 names in a QListWidget (which is hidden) and an a QLineEdit. Now if I type the letter "a" in the line Edit it should display a drop down of all those name in the list widget that begin with the letter "A". the user could select using a mouse or a keyboard (since there will be a vertical scroll-bar). I am not sure if a QLineEdit could do this. But I would like to know what is out there to accomplish this.


Solution

  • You can use QCompleter which provides a way for autocompletion in widgets like QLineEdit and QComboBox. When the user starts typing a word, QCompleter suggests possible ways of completing the word, based on a word list.

    An example from the Qt documentation:

    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);