Название: QProgressDialog для обратобки рекурсии. Отправлено: KuZ от Май 08, 2010, 22:15 Есть функция которая реализует алгоритм "волновой алгоритм", у меня в программе используется для выхода из лабиринта, но это не столь важно.
Код: runAlgorithm(unsigned int x, unsigned int y, double val) upd 1: Модно конечно сделать чтоб просто надпись была "подождите..." , но я думаю пользователю намного познавательней будет когда будет видно сколько осталось %. Или каким может быть другим способом можно сделать, приму любую идею. Название: Re: QProgressDialog для обратобки рекурсии. Отправлено: garryHotDog от Май 09, 2010, 07:29 попробуй вот этот виджет, вместо прогресс диалога - http://qt-apps.org/content/show.php/QProgressIndicator?content=115762, очень прост в использовании!!
Название: Re: QProgressDialog для обратобки рекурсии. Отправлено: ufna от Май 09, 2010, 08:35 самое простое - берешь сложность алгоритма, считаешь количество шагов в наихудшем случае - это будет максимальный предел прогресс бара. каждый шаг рекурсии и т.п. шлешь сигнал "я отработался", ловишь его в основном потоке и добавляешь к прогресс бару.
Для более оптимальных результатов этот метод можно и нужно оптимизировать (к примеру, не стоит слать кучу сигналов, достаточно раз в n/100 срабатываний). Название: Re: QProgressDialog для обратобки рекурсии. Отправлено: KuZ от Май 09, 2010, 09:59 самое простое - берешь сложность алгоритма, считаешь количество шагов в наихудшем случае - это будет максимальный предел прогресс бара. каждый шаг рекурсии и т.п. шлешь сигнал "я отработался", ловишь его в основном потоке и добавляешь к прогресс бару. Понял. Только проблема не знаю как определять сложность алгоритма, если можешь скинь несколько ссылок если есть, где доходчиво объясняется как определить. (Пошел гуглить)Для более оптимальных результатов этот метод можно и нужно оптимизировать (к примеру, не стоит слать кучу сигналов, достаточно раз в n/100 срабатываний). |