从网站将数据更新到QTableView(间歇性)

updating data to QTableView from website (intermittently)

本文关键字:QTableView 网站 数据 更新      更新时间:2023-10-16

只更新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); 
}

您可以使用QTimer在定义的时间间隔启动一个操作,以下载更新的数据(如果在此期间网站没有更新,则为最后一个版本)。

正如您所指出的,使用while(1)for (;;)循环不是一个好主意。