По сути, вы просто создаете экземпляр QProgressDialog
:
QProgressDialog progress("Parsing...", "Abort", 0, numOperations, this);
progress.setWindowModality(Qt::WindowModal);
где numOperations
— это полное количество вещей, которые вам нужно сделать, прежде чем будет выполнен синтаксический анализ. Для этого вам, вероятно, нужно сделать первый быстрый проход по данным, где вы просто подсчитываете общее количество элементов для анализа или что-то подобное, и устанавливаете это значение как максимальное значение numOperations
в коде предыдущего примера. Затем вы выполняете фактическую обработку и периодически вызываете setValue:
progress.setValue(finishedOperations);
где finishOperations — это количество вещей, проанализированных на данный момент.
Предполагается, что вам нужно самое простое решение, в котором индикатор выполнения отображается в виде отдельного модального диалогового окна. Если вы хотите дать пользователю возможность прервать процесс, вам необходимо реализовать слот, который вы подключаете к canceled()
сигнал.
Если вам не нужен индикатор выполнения в модальном диалоговом окне, вы просто показываете QProgressBar
< /а> где-то. Он работает аналогичным образом, периодически вызывая setValue().
person
teukkam
schedule
07.09.2010