Я создал приложение, которое извлекает результаты API каждую минуту и отображает их в qtableview, используя qabstracttablemodel.Вот некоторые из моих фрагментов кода.
qTimer = new QTimer(this);
connect(qTimer, SIGNAL(timeout()), this, SLOT(fetchData()));
fetchData();
qTimer->start(60000);
функция fetchData
QNetworkReply *reply = netManager->get(QNetworkRequest{QUrl{"api url"}});
connect(reply, SIGNAL(finished()), this, SLOT(netRequestFinished()));
netRequestFinished slot
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
QString strReply = (QString)reply->readAll();
QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8());
QJsonObject jsonObject = jsonResponse.object();
model->exchangeArray = jsonObject["exchanges"].toArray();
model->updateData();
reply->deleteLater();
функция updateData
emit layoutChanged();
В настоящее время все содержимое результата API изменяется каждый раз, когда я выбираю, поэтому мне нужно испустить сигнал layoutChanged.Когда я запускаю приложение и не выполняю никаких действий с таблицей, проблем с сбоем не возникает.Но если я часто запускаю событие щелчка мышью для просмотра таблицы, оно полностью падает.Я думаю, что если я щелкну мышью, когда раздастся сигнал layoutChagned, он выйдет из строя.
Что мне нужно сделать, чтобы решить эту проблему?Заранее спасибо.