Программа, которую я разрабатываю, использует потоки для обработки длительных процессов. Я хочу иметь возможность использовать Gauge Pulse, чтобы показать пользователю, что в то время как работает длинный поток, что-то действительно происходит. В противном случае визуально ничего не произойдет в течение некоторого времени при обработке больших файлов & пользователь может подумать, что программа ничего не делает.wxpython с использованием калибровочного импульса с многопоточными длительными процессами
Я разместил изображение в строке состояния программы. Моя проблема в этом. У меня возникают проблемы при попытке вызова калибровочного импульса, независимо от того, где я размещаю код, который он либо запускает быстро, либо останавливается, либо работает на правильной скорости в течение нескольких секунд, а затем останавливается.
Я попытался разместить одну строку кода ниже в самой нити. Я также попытался создать еще один поток из длинного цикла процесса, чтобы вызвать код ниже. У меня все еще возникают проблемы.
Я не думаю, что я мог бы использовать wx.CallAfter, поскольку это победит точку. Импульс нужно назвать, пока процесс работает, а не после факта. Также попробовал usin time.sleep (2), который также не очень хорош, поскольку он замедляет процесс, чего я хочу избежать. Даже при использовании time.sleep (2) у меня остались те же проблемы.
Любая помощь будет оценена по весу!
progress_bar.Pulse()
Спасибо за ответ Майк. Приложение - это только мой проект. ! st программа, которую я когда-либо пытался написать. Это программа шифрования файлов для Linux, поэтому длительный процесс будет связан с шифрованием файла. Увеличьте размер файла дольше. Для небольших файлов это почти мгновенно, но после тестирования приложения с некоторыми более крупными файлами стало очевидно, что мне нужен какой-то загруженный объект, чтобы позволить пользователю knwo что-то происходит. Thansk для ссылок. Я уже посмотрел на них. –
Threading кажется довольно сложным процессом только для создания индикатора выполнения. Посмотрите на wx.Timer, который мог бы выполнить эту работу, если бы я просто запустил индикатор выполнения. –
Да ... Основная причина использования потоковой передачи - сохранить длительный процесс блокирования основного цикла потока GUI, который заставит ваше приложение выглядеть замороженным. Вероятно, я должен был связать мой учебник по таймеру, поэтому здесь вы найдете: http://www.blog.pythonlibrary.org/2009/08/25/wxpython-using-wx-timers/ –