Как сделать QProgressDialog реагировать при этом избегать всех пользовательских вводовC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать QProgressDialog реагировать при этом избегать всех пользовательских вводов

Сообщение Anonymous »

У меня есть операция, которая делает много обновлений пользовательского интерфейса и может занять много времени. Я не хочу, чтобы какой -либо другой ввод пользовательского интерфейса был возможным. Способен установить это) < /li>
Когда мой диалог исчез, я могу нажать на приложение, и оно отвечает- как ни странно, моя точка останова показывает, что я нахожусь в

Код: Выделить всё

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;
}

Итак, как мне сохранить кнопку qporgressbardialog больше всего, а также с отзывчивой панелью прогресса и отменой, в то время как мое приложение освежает и обрабатывает сигналы из потоков за ним?


Подробнее здесь: https://stackoverflow.com/questions/797 ... user-input
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»