【发布时间】:2016-07-28 15:00:18
【问题描述】:
仅更新一次 QTableView,因为我尝试处理数据的网站在有新数据时不会自动更新。我可能需要重新运行 url 以获取最新数据,因为当我重新启动应用程序时 QTableView 会自动更新。有人可以建议我这样做吗?我如何在延迟的情况下递归调用我的 slotReadyRead()。我是否使用计时器或使其成为多线程或使用 while(1)/for(;;) 循环?我想在未来为数据库实现一个 TCP 服务器,并认为连续循环可能会很混乱或有问题。
LogWindow::LogWindow(QWidget *parent) :
QMainWindow(parent)
{
ui->setupUi(this);
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
QNetworkRequest request(web_url);
reply = manager->get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
}
void LogWindow::slotReadyRead()
{
while(reply->bytesAvailable())
{
processWebsite1();
processWebsite2();
QStandardItem *firstCol = new QStandardItem(rf_ID);
QStandardItem *secondCol = new QStandardItem(time);
model->setItem(0,0,firstCol);
model->setItem(0,1,secondCol);
ui->logs->setModel(model);
}
emit datachanged(firstCol, secondCol);
}
【问题讨论】: