GTK Progressbar пульсирующий питон - PullRequest
0 голосов
/ 10 мая 2010

Как я могу заставить Progressbar "пульсировать", пока запущена другая функция?

Ответы [ 3 ]

1 голос
/ 10 мая 2010

Вот пример того, как это сделать здесь .

1 голос
/ 10 мая 2010

Вставьте эту другую функцию в отдельный поток. Пока ваш основной поток выполняет какой-либо код, графический интерфейс заморожен. Это не проблема для коротких фрагментов кода, но, очевидно, проблема в вашем случае.

Также прочитайте, что FAQ по PyGTK говорит об использовании потоков в программе PyGTK.

0 голосов
/ 11 мая 2010

Если ваша функция выполняется во многих итерациях, которые сами по себе не занимают слишком много времени, вам не обязательно возиться с отдельными потоками. Вы также можете заставить GUI обновляться во время длинных вычислений:

def long_function(some_args):
    while task_is_not_finished():
        do_some_stuff_that_doesnt_take_too_long()
        progress_bar.pulse()
        while gtk.events_pending():
            gtk.main_iteration()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...