QCompleter не работает

Это не показывает всплывающее окно или ошибку. Он молча ничего не делал.

QStringList dictionary;
dictionary << "exampleOne" << "Two" << "blah" << "hello";
dictionary.sort();
QCompleter * completer = new QCompleter(dictionary,ui->inRawText);
completer->setModel(new QStringListModel(dictionary, completer));
completer->setCompletionMode(QCompleter::PopupCompletion);
completer->setCaseSensitivity(Qt::CaseInsensitive);
completer->setWidget(ui->inRawText);

inRawText является экземпляром класса QTextEdit.

РЕДАКТИРОВАТЬ: сигналы (активированные и выделенные) не излучаются.

РЕДАКТИРОВАТЬ: всплывающее окно отображается только если я вызываю полный () слот. Это глупо, я должен переопределить класс QTextEdit и его обработчик keyPressEvent … проклятый QT …

1

Решение

Создание QTextEdit родитель QCompleter влияет только на иерархию владения, это не значит, что QCompleter должен начать обработку текста для QTextEdit,

По факту, QCompleter не функционирует как автозаполнение для QTextEdit, это работает только для QLineEdit а также QComboBox и вы используете setCompleter() Функция этих двух классов для запуска автозаполнения.

Прочитайте документация QCompleter для дополнительной информации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]