#c #qt #drop-down-menu #autocomplete #qlineedit
#c #qt #выпадающее меню #автозаполнение #qlineedit
Вопрос:
Допустим, у меня есть 10 имен в a QListWidget
(которое скрыто) и a QLineEdit
. Теперь, если я введу букву «a» в строке Редактирования, она должна отображать выпадающий список всех тех имен в виджете списка, которые начинаются с буквы «A». пользователь может выбирать с помощью мыши или клавиатуры (поскольку будет вертикальная полоса прокрутки). Я не уверен QLineEdit
, сможет ли a это сделать. Но я хотел бы знать, что есть для этого.
Ответ №1:
Вы можете использовать QCompleter
, который предоставляет способ автозаполнения в виджетах, таких как QLineEdit
и QComboBox
. Когда пользователь начинает вводить слово, QCompleter
предлагает возможные способы завершения слова на основе списка слов.
Пример из документации 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);
Комментарии:
1. Спасибо, я попробую и отправлю ответ
2. Вам даже не нужно
QCompleter
заполнять данными вручную, вы можете просто передать модель, которую выQListWidget
уже используете, вызвавQAbstractItemView::model()
функцию.3. Я намного более понятен и точен, чем пример QtProject. Спасибо.
4. Отмените это. Страница QCompleter на самом деле дает именно этот пример. Мой плохой.