这是我使用 CONNECT
的代码。我用它转到插槽 slotReadyRead
,在那里我可以阅读回复的内容。
但是我在调试或运行程序时收到一条消息
QObject::connect: Incompatible sender/receiver arguments QNetworkReplyImpl::readyRead() --> MainWindow::slotReadyRead(QNetworkReply*)
.cpp
void MainWindow::on_pushButton_clicked()
{
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl("http://lascivio.co/mobile/get.php?name=marwa"));
QNetworkReply *reply = manager->get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead(QNetworkReply*)));
}
void MainWindow::slotReadyRead(QNetworkReply* reply)
{
QByteArray b (reply->readAll());
QString s(b);
ui->lineEdit->setText(s);
}
.h
public slots:
void slotReadyRead(QNetworkReply* reply);
最佳答案
插槽需要具有与信号兼容的签名。所以要么将其定义为:
void slotReadyRead();
或者将回复设为可选:
void slotReadyRead(QNetworkReply* reply = null);
https://stackoverflow.com/questions/7207083/