它没有显示任何弹出窗口或错误。它无声无息。
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 ......
答案 0 :(得分:0)
使QTextEdit
的父QCompleter
仅影响所有权层次结构,并不意味着QCompleter
必须开始处理QTextEdit
的文字。
事实上,QCompleter
不能作为QTextEdit
的自动填充功能,它只适用于QLineEdit
和QComboBox
,您可以使用setCompleter()
功能这两个类开始自动完成。
阅读documentation of QCompleter
了解更多信息。