QCompleter不起作用

问题描述 投票:1回答:1

它没有显示任何弹出窗口或错误。它无声无息。

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类的实例。

编辑:不发出信号(激活和突出显示)。

编辑:仅当我调用complete()插槽时才会显示弹出窗口。这是愚蠢的,我必须重新实现QTextEdit类,它的keyPressEvent处理程序......该死的QT ......

c++ qt qcompleter
1个回答
0
投票

使QTextEdit成为QCompleter的父级仅影响所有权层次结构,并不意味着QCompleter必须开始处理QTextEdit的文本。

事实上,QCompleter不能作为QTextEdit的自动完成器,它只适用于QLineEditQComboBox,你使用这两个类的setCompleter()函数来启动自动完成。

阅读documentation of QCompleter了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.