与 lineEdit 关联的 Qcompleter 在 QNetworkRequest 完成的插槽中不起作用。Qcompleter 消失得很快。每次 lineEdit 中的文本更改请求时都会发送。我尝试了一个没有其他代码的演示,它也发生了。
每次编辑lineEdit中的文本时,都会将包含文本的请求发送到我的服务器。然后我想在Qcompleter中显示回复内容。但提示立即消失。
void MainWindow::onRequestFinished(QNetworkReply* reply){
QStringList stringList;
stringList << "test1" <<"test2"<<"test3";
QCompleter* completer = new QCompleter(stringList,this);
completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
ui->lineEdit->setCompleter(completer);
reply->deleteLater();
}
void MainWindow::on_lineEdit_textChanged(const QString &arg1)
{
QUrl url("http://www.google.com");
QNetworkRequest request;
request.setUrl(url);
manager->get(request);
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
...
this->manager = new QNetworkAccessManager(this);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(onRequestFinished(QNetworkReply*)));
...
}