Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2015 17:41:19

Xyanide
Зарегистрирован: 2014-02-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter



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



Это просто какой-то Python!

Отредактировано Xyanide (Март 9, 2015 19:59:03)

Прикреплённый файлы:
attachment EasyProgress.py.zip (3,2 KБ)

Офлайн

#2 Март 9, 2015 21:18:27

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

Так есть же в ttk…

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

P.S.S. Просмотрел Ваш код. Не понравился Хотя задумка правильная.

Отредактировано 4kpt_III (Март 9, 2015 21:35:59)

Офлайн

#3 Март 10, 2015 07:01:31

Xyanide
Зарегистрирован: 2014-02-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

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



Это просто какой-то Python!

Отредактировано Xyanide (Март 10, 2015 07:06:32)

Офлайн

#4 Март 10, 2015 12:23:27

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

ООП в Tkinter немного не так используется. Отсюда и все косяки.

Офлайн

#5 Март 10, 2015 13:22:48

Xyanide
Зарегистрирован: 2014-02-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

4kpt_III
ООП в Tkinter немного не так используется. Отсюда и все косяки.
Ну, во первых, косяков там нет! А то, как используется ООП в Tkinter, я знаю, и намеренно строю код таким образом, каким он вам не понравился. Во-первых, читабельней для всех, во-вторых, в разы быстрее исполнение! И, что самое важное, - пользователь должен работать с модулем с минимальным количеством телодвижений.



Это просто какой-то Python!

Отредактировано Xyanide (Март 10, 2015 13:26:38)

Офлайн

#6 Март 10, 2015 14:25:36

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

Если уж во-первых - то косяков там тьма.

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

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

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

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

P.S.S. Ну и за time.sleep(0.01) в tkinter обрывал бы руки.

Офлайн

#7 Март 10, 2015 14:41:15

Xyanide
Зарегистрирован: 2014-02-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

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

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



Это просто какой-то Python!

Отредактировано Xyanide (Март 10, 2015 14:42:52)

Офлайн

#8 Март 10, 2015 15:00:53

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

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
Вы знаете хотя бы основы программирования?

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



Отредактировано 4kpt_III (Март 10, 2015 15:32:15)

Офлайн

#9 Март 10, 2015 17:03:21

Xyanide
Зарегистрирован: 2014-02-11
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

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



Это просто какой-то Python!

Офлайн

#10 Март 10, 2015 17:10:52

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Прогресс бар на Tkinter

Xyanide
Я повторю вопрос: вы тролль!?

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

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

P.S. И не тыкай мне, чмо недоношенное…

Отредактировано 4kpt_III (Март 10, 2015 17:11:04)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version