Xyanide
Если вы мне покажите повторный root, я отрублю себе правую руку.
Пора рубить руки

Прогресс бар должен работать поверх root, который уже был создан. Для этого в качестве первого аргумента в __init__ он обязательно передается.
Xyanide
Создавать класс в tkinter без наследования - это выбор программиста.
Выбор программиста это в том случае, когда он пишет для себя и не выкладывает это потом как расширения. Ибо такой подход никто не использует и Ваше решение очень и очень выбивается из всех предложенных расширений.
Xyanide
Что именно жесть, или вы только ляпаете языком?
Вы считаете, что так пишется документация? Откройте хотя-бы tkinter и посмотрите как там написана документация внутри модуля. Причем сейчас уже принято описывать :param your_param: info
Xyanide
Зависимости. Собственно, какие?
Попробуйте запустить Ваш модуль без PIL. Или Вы считаете, что PIL идет вместе с python?
Xyanide
Ну, и за ваше поведение, я бы вообще убил!
Говнокод не выкладывайте в качестве решения проблемы и убивать никого не придется.
По вопросу. time.sleep() вывешивает весь mainloop. Но Вы это и так знаете, поэтому использовали по-ошибке.
Xyanide
Приведите мне кусок своего кода, уж очень охота поглумиться, как это делаете вы!
Открываете мои темы и смотрите. Можете поискать по 4kpt, 4kpt_II ну и по этой учетке, собственно, тоже. Даже была где-то тема в которой обсуждалось правильное проектирование GUI с использованием ООП. Там даже было много интересных моментов относительно обхода некоторых подводных камней.
Xyanide
Вы знаете хотя бы основы программирования?
Неа. Не в курсе. Расскажете?