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 для дополнительной информации.

Другие вопросы по тегам