QCompleter и QLineEdit для нескольких слов - PullRequest
3 голосов
/ 21 января 2009

Есть ли способ заставить QCompleter действовать как автозаполнение для нескольких слов?

У кого-то есть идеи, как это сделать?

Спасибо

1 Ответ

8 голосов
/ 21 января 2009

Не знаю, правильно ли я понимаю:

QStringList wordList;
wordList << "alpha and beta" << "omega" << "omicron" << "zeta";

QCompleter *completer = new QCompleter(wordList, this);
completer->setCaseSensitivity(Qt::CaseInsensitive);

QLineEdit *lineEdit = new QLineEdit(this);
lineEdit->setCompleter(completer);

Если вы введете alp, вы получите завершение "альфа и бета", которое состоит из более чем одного слова. Нет предела.

Обновление после уточнений:

Похоже, что запрашивается запуск нового автозаполнения после значения разделителя. В текущем случае этот разделитель будет пробелом. Эквивалентным примером будет модель дерева завершена из примеров Qt. Этот пример иллюстрирует, как решить ту же ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...