Aktualisiert das QTableView nur einmal, da die Websites, von denen ich versuche, Daten zu verarbeiten, nicht automatisch aktualisiert werden, wenn sie über neue Daten verfügen. Möglicherweise muss ich die URL erneut ausführen, um die neuesten Daten zu erhalten, da sich QTableView beim Neustart der Anwendung in Ordnung bringt. Kann mir jemand einen Weg vorschlagen, dies zu tun? Wie rufe ich meine slotReadyRead() rekursiv mit einer gewissen Verzögerung auf. Benutze ich Timer oder mache Multi-Threading oder verwende eine While (1)/für (;;) -Schleife? Ich möchte einen TCP-Server für Database in der Zukunft implementieren und denke, dass kontinuierliche Schleifen chaotisch sein können oder ein Problem sein können.Aktualisieren von Daten auf QTableView von der Website (mit Unterbrechungen)
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);
}