QTableViewは、データを処理しようとしているWebサイトが新しいデータを持っているときに自動更新されないので、一度だけ更新します。私はアプリケーションを再起動するとQTableView自体が正常に更新されるので、最新のデータを取得するためにURLを再実行する必要があるかもしれません。誰かが私にこれをする方法を提案することはできますか?私はどのように私のslotReadyRead()を再帰的にいくらかの遅延で呼び出すのですか?私はタイマを使用するか、マルチスレッド化するか、while(1)/ for(;;)ループを使用しますか?私は将来、データベース用のTCPサーバーを実装したいと思うし、連続的なループが乱雑になったり、問題になると思っています。QTableViewへのデータの更新(断続的)
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);
}