Когда мой диалог исчез, я могу нажать на приложение, и оно отвечает- как ни странно, моя точка останова показывает, что я нахожусь в
Код: Выделить всё
qApp->processEvents(QEventLoop::ExcludeUserInputEvents, 5);< /code>
, даже если я указываю, что ExcludeUdeSinputevents < /code>. < /li>
< /ol>
if (m_progressDialog==nullptr) {
m_progressDialog = new QProgressDialog("Loading...", "Cancel", 0, 100);
m_progressDialog->setWindowModality(Qt::WindowModal);
m_progressDialog->setWindowFlags(Qt::WindowStaysOnTopHint| m_progressDialog->windowFlags());
m_progressDialog->show();
connect(m_progressDialog, &QProgressDialog::canceled, this, [&]() {m_loadCanceled = true; });
}
for( auto system: systems) {
.
.
curr=0;
while (!m_loadCanceled && !m_done) {
.
.
.
if (m_progressDialog) {
m_progressDialog->setValue((100 * curr)/ records.size());
qApp->processEvents(QEventLoop::ExcludeUserInputEvents, 5);
}
.
.
.
}
}
if (m_progressDialog) {
m_progressDialog->close();
m_progressDialog->deleteLater();
m_progressDialog = nullptr;
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... user-input