Найти - Пользователи
Полная версия: Прогресс бар на Tkinter
Начало » Python проекты » Прогресс бар на Tkinter
1 2
Xyanide


Очень простой и функциональный прогресс бар, использующий библиотеку Tkinter. Тест на Python 2.6-2.7.
Присутствует практически все: изменение размера бара, шрифта, цветов рамки, полосы прогресса, текста, возможность прикреплять иконку…
API можно найти в конце модуля.
4kpt_III
Так есть же в ttk…

P.S. Сам когда-то такой напилил. С возможностью передачи в любую функцию как параметр.

P.S.S. Просмотрел Ваш код. Не понравился Хотя задумка правильная.
Xyanide
4kpt_III
Так есть же в ttk…P.S. Сам когда-то такой напилил. С возможностью передачи в любую функцию как параметр.P.S.S. Просмотрел Ваш код. Не понравился Хотя задумка правильная.
А что с кодом? Используется прогресс в пару строчек. Обычно такие бары в десятки раз корявей и в сотни киллобайт! А то, что есть в ttk, меня не устраивало.
4kpt_III
ООП в Tkinter немного не так используется. Отсюда и все косяки.
Xyanide
4kpt_III
ООП в Tkinter немного не так используется. Отсюда и все косяки.
Ну, во первых, косяков там нет! А то, как используется ООП в Tkinter, я знаю, и намеренно строю код таким образом, каким он вам не понравился. Во-первых, читабельней для всех, во-вторых, в разы быстрее исполнение! И, что самое важное, - пользователь должен работать с модулем с минимальным количеством телодвижений.
4kpt_III
Если уж во-первых - то косяков там тьма.

Приведу наиболее значимые:

1. Создавать повторный root для прогресс барра - это не косяк. Это ересь.
2. Создавать класс в tkinter без наследования - это просто непонимание основ применение ООП в GUI. Откройте любую книгу по tkinter и поймете, что я прав полностью. И тут как раз вопрос удобства использования Ваших решений в система виджетов.
3. Отсутствие перехвата каких-либо ошибок от tkinter.
4. Документация вообще жесть. Разберитесь как пишется документация.
5. Зависимости? Собственно. Где?

Xyanide
Во-первых, читабельней для всех, во-вторых, в разы быстрее исполнение!
С чем сравнивали? Как сравнивали?

P.S. Еще могу с десяток косяков накидать. Но это будут уже менее значимые косяки.

P.S.S. Ну и за time.sleep(0.01) в tkinter обрывал бы руки.
Xyanide
1. Создавать повторный root для прогресс бара - это не косяк. Это ересь
Если вы мне покажите повторный root, я отрублю себе правую руку.
2. Создавать класс в tkinter без наследования - это просто непонимание основ применение ООП в GUI.
Создавать класс в tkinter без наследования - это выбор программиста.
4. Документация вообще жесть.
Что именно жесть, или вы только ляпаете языком?
5. Зависимости? Собственно. Где?
Зависимости. Собственно, какие?
6. Ну и за time.sleep(0.01) в tkinter обрывал бы руки.
Ну, и за ваше поведение, я бы вообще убил!

Вы тролль? Приведите мне кусок своего кода, уж очень охота поглумиться, как это делаете вы! Вы знаете хотя бы основы программирования?
4kpt_III
Xyanide
Если вы мне покажите повторный root, я отрублю себе правую руку.

Пора рубить руки

self.root = Tkinter.Tk()

Прогресс бар должен работать поверх root, который уже был создан. Для этого в качестве первого аргумента в __init__ он обязательно передается.

Xyanide
Создавать класс в tkinter без наследования - это выбор программиста.

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

Xyanide
Что именно жесть, или вы только ляпаете языком?

Вы считаете, что так пишется документация? Откройте хотя-бы tkinter и посмотрите как там написана документация внутри модуля. Причем сейчас уже принято описывать :param your_param: info

Xyanide
Зависимости. Собственно, какие?

Попробуйте запустить Ваш модуль без PIL. Или Вы считаете, что PIL идет вместе с python?

Xyanide
Ну, и за ваше поведение, я бы вообще убил!

Говнокод не выкладывайте в качестве решения проблемы и убивать никого не придется.
По вопросу. time.sleep() вывешивает весь mainloop. Но Вы это и так знаете, поэтому использовали по-ошибке.

Xyanide
Приведите мне кусок своего кода, уж очень охота поглумиться, как это делаете вы!

Открываете мои темы и смотрите. Можете поискать по 4kpt, 4kpt_II ну и по этой учетке, собственно, тоже. Даже была где-то тема в которой обсуждалось правильное проектирование GUI с использованием ООП. Там даже было много интересных моментов относительно обхода некоторых подводных камней.

Xyanide
Вы знаете хотя бы основы программирования?

Неа. Не в курсе. Расскажете?



Xyanide
Да что ты говоришь!
Документацию я пишу человеческим языком и использовать убитую, по моему мнению, конструкцию :param your_param: info не намерен! По поводу второго root, ты судишь как человек, который вообще , пардон, без мозгов! То есть, исходя из твоей логики, во всем GUI приложении должен быть один родитель, а окна TopLevel так, погулять вышли! Свой прогресс бар я использую во всех своих программах, который адекватно себя показывает! В общем, я не понимаю ваших душевных проблем, которые заставляют вас вести себя подобным образом… Я повторю вопрос: вы тролль!?
4kpt_III
Xyanide
Я повторю вопрос: вы тролль!?

Отвечу на вопрос:
Послушайте, говнокодер малолетний… Есть разница между Toplevel и Tk. Но это для нормальных программистов. Для такого говнаря, как Вы, это не имеет никакого значения. И да. root чаще всего должен быть один. И mainloop тоже. Случаи когда нужно 2 и более не для Вас. Вам еще до этого использования этого случая, как до Киева рачки.

Русским языком? Комменты на каждую строку? Слушайте. Вы упороты в хлам. Идите лучше подъезды мыть. Пользы больше будет…

P.S. И не тыкай мне, чмо недоношенное…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB