Хочу сразу отметить, что с QT вы получите немного меньшую производительность. Хотя обе библиотеки по сути - биндинги для C на Python, нужно отметить, что QT даёт больший уровень абстракции и сам по себе выглядит как комбайн (например, в нём есть API для работы с базой данных, GUI библиотека!). Кроме этого, отмечу, что customtkinter так же написан не лучшим образом. Хотя, судя по использованию классов он подразумевает ООП подход, на деле он часто нарушает его: использует статические переменные, в том числе модифицирует их значения буквально отовсюду. Помимо этого, не везде в коде присутствует документация, тайпинги. Существующая документация же написана на скорую руку и не придерживается какого-либо единого стиля (Google/NumPy и т.п.). Некоторые вещи реализованы откровенными костылями, например импорты, которые нигде не используются, но по какой-то неуказанной нигде неведомой причине должны оставаться в коде (как следует из заданного комментария). Хочу так же отметить, что код очень неоднороден: в некоторых местах используются слишком длинные и довольно сложные к восприятию и чтению конструкции, а в других используются базовые. Не везде выполняется принцип DRY (иногда это случается даже в пределах одного файла). Очень много используются словари (которые не всегда эффективны в памяти). И ещё много небольших недочётов и помарок. Также стоит отметить, что tkinter сам по себе имеет некоторое количество неприятных багов. Лично моё мнение - GUI на Python вообще не самое лучшее и продвинутое решение. На данный момент для GUI я предпочитаю Tauri (у него есть преимущества над Electron'ом + он использует Rust). На текущий момент времени, нормальных библиотек для работы с GUI на Python единицы (если они вообще существуют).
У меня довольно простой проект в вузе, написал его на Tkinter, но теперь хочу сделать интерфейс более красивым. Я новичок в python, какую библиотеку лучше использовать ?
Есть небольшие баги в программе. 1. Если ни одна галочка не установлена, то программа выдает ошибку "IndexError: Cannot choose from an empty sequence". Нужно что бы по умолчанию галочка стояла хотя бы на цифрах. 2. Длинна пароля 0 не имеет смысла. Ни чего не отображается в окне. Нужно начинать длину пароля минимум с 1. 3. Указать длину пароля в GTkEntry совсем невозможно, только передвигая ползунок. 4. Сгенерированный пароль нельзя скопировать. Но не смотря на это автору респект и уважуха!
Спасибо за информацию. Как раз есть пару мелких программ с использованием tkinter, но не нравится оформление, а переписывать на pyqt не охота и громоздко )
Вот я не понимаю,как можно кодить десктопное приложение с GUI, если ты не видишь, как выглядит у тебя форма. Это очень не удобно. Для того, чтобы писать графический интерфейс, заранее нужно делать отдельно макет. А каждый раз запускать приложение ради того,чтобы посмотреть где находится элемент, тоже не хочется. Задача программиста делать всё максимально быстро и чётко, чтобы уложиться в дедлайн, а убить сначала время на создание примерного макета твоего интерфейса, а потом уже думать,как программно реализовать, в общем, запарно. Такое ощущение,что библиотека направлена на программистов уровня мидл - сеньор. Джунам тяжеловато будем привыкать к этому. В общем сомнительно...
Отличный урок, спасибо! Только нужно выбрать активный чекбокс по-умолчанию, т.к. без этого программа вылетает с ошибкой (если ни один чекбокс не выбран).
Мне кстати интересно. А нет ли графических решений по строению окон и элементов? Как в Visual Studio > Windows form, UWP, etc. То есть, надо наугад тыкать значения чтобы понять, куда и какую кнопку нужно поставить?
Сделай сравнение customtkinter и PyQT в плане выбора. Контента крайне мало по многопоточности, например с трудом нашёл как запустить 2 окна одновременно (нужно создать поток с новым окном внутри петли Ткинтера перед mainloop())
Неплохо. Надо попробовать. Интересно, как будет такое приложение под линукс выглядеть, я пишу кроссплатформенные приложения т.к. за ними будущее. Интересно будет сравнить с PyQT библиотекой, которой пользуюсь в настоящее время..
@@ITHobbies В моем случае достаточно. Я интерфейс пишу для работы с СУБД, типа: внести данные, изменить, удалить, сформировать отчет. можно это в виде веба сделать, но десктоп приложение да еще и кросплатформенное епе-то больше пользователям привычно. Задачу перенес с делфи, с которой пользователи 2 десятка лет работали. Да и опыта в веб разработке нету, а так переделал интерфейс на современный и ладно.
Это круто но для меня есть несколько проблем. Для запуска приложения нужно входить в виртуальное окружение после чего запускать приложение. Если Я делаю его для бухгалтера допустим на винде... проще сделать джанго)) Браузеры есть везде))
Привет, не могу нигде найти ответ на свой вопрос. Виджет Таблицы в Ткинтор умеет настраивать высоту строк или нет? Я загружаю в таблицу данные и если они не вмещаются в одну строчку и я начинаю переносить их на другую строку, то данные начинают наслаиваться друг на друга. Один элемент таблицы, пересекает ниже лежащий элемент таблицы. По сути получается грязь, текст по тексту. Кто столкнулся с этой проблемой, какое решение Вы нашли? :)... Надеюсь не забросить кодить :))... Потому-что это уже посещает мои мысли :)), когда долго что-то не получается :)...
На этапе "Тестируем приложение" после запуска и нажатия на кнопку 'Generate', получаю сообщение: module 'password' has no attribute 'create_new' Что делать?
pip : Имя "pip" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Про верьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку. строка:1 знак:1 + pip install customtkinter + ~~~ + CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException Что делать?
спасибо конечно за контент, полезно, однако посмотрите на других кодеров, которые обучают , смотря на Вас, складывается ощущение, что вы куда то бежите, быстрее быстрее надо, в обучении так не катит, или просто вы сами не понимаете, что делаете, читаете сценарий, а потом переписываете код пожалуйста, будьте чуть спокойнее, обьясняйте более детально что и как
Только спагетти и дублирование! Вы что, макароны любите меньше, чем бездушные инкапсуляции, наследования , прости господи, полиморфизм? Может ещё и метапрограммированием балуетесь? А?)))
Ти з України? Чому б тобі не перейти на українську? В україномовному ютубі дуже не вистачає такого контенту як в тебе.... Я б тоді підписався і слідкував за твоїми відосами)
С сожалением наблюдаю деградацию технологий разработки - писать интерфейс вручную 25 минут для пары кнопок, это абсурд. Куда катится этот мир?! В 2000 году были сделаны величайшие разработки C-Builder и Delphi, с помощью которых аналогичное приложение можно сделать буквально написав пару строчек кода, минуты за 2-3. Но видимо я чего то не понимаю....
Как я вас прекрасно понимаю! Один из студентов писал на пайтоне десктопное приложение. Времени на это ушло не особо много, но вот ui был приветом из времён win мелениум и код был полон этих настроек ui и событий. Тут в видео хотя бы была задумка разбить логику и ui, но у студента всё было вместе. WPF, net maui хоть что то современное. Да и дельфя ещё годится для этого. Но пайтон...
Да, к сожалению Вы не учли такую вещь как кодогенерация. То есть, что бы быстро рисовать такие интерфейсы, как в Делфи нужен дополнительный инструмент, в котором вы как в графическом редакторе будете рисовать пользовательский интерфейс, а потом на каждый объект будете описывать метод и событие.
Хочу сразу отметить, что с QT вы получите немного меньшую производительность. Хотя обе библиотеки по сути - биндинги для C на Python, нужно отметить, что QT даёт больший уровень абстракции и сам по себе выглядит как комбайн (например, в нём есть API для работы с базой данных, GUI библиотека!).
Кроме этого, отмечу, что customtkinter так же написан не лучшим образом. Хотя, судя по использованию классов он подразумевает ООП подход, на деле он часто нарушает его: использует статические переменные, в том числе модифицирует их значения буквально отовсюду. Помимо этого, не везде в коде присутствует документация, тайпинги. Существующая документация же написана на скорую руку и не придерживается какого-либо единого стиля (Google/NumPy и т.п.). Некоторые вещи реализованы откровенными костылями, например импорты, которые нигде не используются, но по какой-то неуказанной нигде неведомой причине должны оставаться в коде (как следует из заданного комментария). Хочу так же отметить, что код очень неоднороден: в некоторых местах используются слишком длинные и довольно сложные к восприятию и чтению конструкции, а в других используются базовые. Не везде выполняется принцип DRY (иногда это случается даже в пределах одного файла). Очень много используются словари (которые не всегда эффективны в памяти). И ещё много небольших недочётов и помарок. Также стоит отметить, что tkinter сам по себе имеет некоторое количество неприятных багов.
Лично моё мнение - GUI на Python вообще не самое лучшее и продвинутое решение. На данный момент для GUI я предпочитаю Tauri (у него есть преимущества над Electron'ом + он использует Rust). На текущий момент времени, нормальных библиотек для работы с GUI на Python единицы (если они вообще существуют).
Спасибо за столь развернутый комментарий! Полезно самому было прочесть
У меня довольно простой проект в вузе, написал его на Tkinter, но теперь хочу сделать интерфейс более красивым. Я новичок в python, какую библиотеку лучше использовать ?
@@Shprotec можно перепистать на custom tk он красивее выглядит
@Shprotec , если хочешь, более менее современный интерфейс и при этом не учить другие языки, то советую фреймворк "Flet"
Есть небольшие баги в программе. 1. Если ни одна галочка не установлена, то программа выдает ошибку "IndexError: Cannot choose from an empty sequence". Нужно что бы по умолчанию галочка стояла хотя бы на цифрах. 2. Длинна пароля 0 не имеет смысла. Ни чего не отображается в окне. Нужно начинать длину пароля минимум с 1. 3. Указать длину пароля в GTkEntry совсем невозможно, только передвигая ползунок. 4. Сгенерированный пароль нельзя скопировать. Но не смотря на это автору респект и уважуха!
Спасибо 😎👍Очень полезно 💥💥💥💯
И Вам спасибо!
Подача материала изумила! Браво!
Спасибо!
Редко пишу комменты, но ты просто кроссавчик!)
Спасибо 🙏
Было бы ещё неплохо, чтобы при вводе числа в GTkEntry изменялось положение ползунка.
Спасибо за информацию. Как раз есть пару мелких программ с использованием tkinter, но не нравится оформление, а переписывать на pyqt не охота и громоздко )
Сам открыл недавно для себя эту библиотеку и она действительно хороша. Замена стандартного tkinter с хорошим дизайном
Годное видео, без воды, только внутри класса почему то главная цветовая тема не меняеться(типа CTk.set_default_color_theme("green")) :(
Спасибо за отличный видос)
супер видео, спасибо 🎉
Спасибо!
Вот я не понимаю,как можно кодить десктопное приложение с GUI, если ты не видишь, как выглядит у тебя форма. Это очень не удобно. Для того, чтобы писать графический интерфейс, заранее нужно делать отдельно макет. А каждый раз запускать приложение ради того,чтобы посмотреть где находится элемент, тоже не хочется. Задача программиста делать всё максимально быстро и чётко, чтобы уложиться в дедлайн, а убить сначала время на создание примерного макета твоего интерфейса, а потом уже думать,как программно реализовать, в общем, запарно. Такое ощущение,что библиотека направлена на программистов уровня мидл - сеньор. Джунам тяжеловато будем привыкать к этому. В общем сомнительно...
А есть такие IDE, где HUD можно синхронить ? На ум приходит только Godot
Круто!)))
Спасибо большое)
Мне приятно! Спасибо
Привет вам большое спасибо.
Надо продолжать серию такого видео урока
Спасибо!
Не знаю зачем мне это, но интересно.Спасибо
Спасибо)
Спасибо за видео!
Отличный урок, спасибо! Только нужно выбрать активный чекбокс по-умолчанию, т.к. без этого программа вылетает с ошибкой (если ни один чекбокс не выбран).
Ага) чет я забыл про это! Подправлю на гитхабе
@@ITHobbies Проверку можно сделать если нет ни одного чекбокса, то просит выбрать хотя бы один
Классный видос
Лайк, подписка
Спасибо!
Мне кстати интересно. А нет ли графических решений по строению окон и элементов? Как в Visual Studio > Windows form, UWP, etc. То есть, надо наугад тыкать значения чтобы понять, куда и какую кнопку нужно поставить?
почему есть чере ui , pyqt
Подскажи пожалуйста какой PyCharm ты используешь а какой мне использовать на вин 10?
Сделай сравнение customtkinter и PyQT в плане выбора.
Контента крайне мало по многопоточности, например с трудом нашёл как запустить 2 окна одновременно (нужно создать поток с новым окном внутри петли Ткинтера перед mainloop())
PySide6 (PyQt6 низзя пользовать в коммерческих проектах)
Хорошее видео , спасибо
Неплохо. Надо попробовать. Интересно, как будет такое приложение под линукс выглядеть, я пишу кроссплатформенные приложения т.к. за ними будущее. Интересно будет сравнить с PyQT библиотекой, которой пользуюсь в настоящее время..
Для простых утилит норм. Если что-то серьезное то конечно pyqt
@@ITHobbies В моем случае достаточно. Я интерфейс пишу для работы с СУБД, типа: внести данные, изменить, удалить, сформировать отчет. можно это в виде веба сделать, но десктоп приложение да еще и кросплатформенное епе-то больше пользователям привычно. Задачу перенес с делфи, с которой пользователи 2 десятка лет работали. Да и опыта в веб разработке нету, а так переделал интерфейс на современный и ладно.
В PyQt работаете с БД через qsqlquerymodel?
На Linux выглядит точно также.
Огромное спасибо за видео. Подскажите пожалуйста, как сделать pycharm такой же удобный как у вас, чтоб кнопки запуска были справа сверху. Спасибо
Обновляете IDE до актуальной версии и в настройках включаем новый UI
@@ITHobbies большое спасибо. Разобрался) выглядит реально круто и удобно
@@ITHobbies где в настройках включить новый UI?
@@NickCapitan настройки New UI
Это круто но для меня есть несколько проблем. Для запуска приложения нужно входить в виртуальное окружение после чего запускать приложение. Если Я делаю его для бухгалтера допустим на винде... проще сделать джанго)) Браузеры есть везде))
Можно его сделать исполняемым файлом с расширением .exe если для винды. Есть видео на канале как это сделать
Привет, не могу нигде найти ответ на свой вопрос. Виджет Таблицы в Ткинтор умеет настраивать высоту строк или нет? Я загружаю в таблицу данные и если они не вмещаются в одну строчку и я начинаю переносить их на другую строку, то данные начинают наслаиваться друг на друга. Один элемент таблицы, пересекает ниже лежащий элемент таблицы. По сути получается грязь, текст по тексту. Кто столкнулся с этой проблемой, какое решение Вы нашли? :)... Надеюсь не забросить кодить :))... Потому-что это уже посещает мои мысли :)), когда долго что-то не получается :)...
Спасибо, но есть вопрос. У меня выпадающее меню комбобокса маленькое ... Может можно исправит?
Идеально, жаль что из Tkinter до сих пор нельзя сформировать apk файлик на мобилку кинуть (хотя бы оффлайн приложение чтобы было)
Python и мобильная разработка действительно не очень развито. Но есть kivy и он развивается
@@ITHobbies Надо чтобы сам Python стал быстрее, в 3.11 сделали к этому большой шаг
Вроде есть Kivy. Не знаю, насколько он хорош, на питоне не пишу, но раз существует, значит его кто-то использует
Very good!!
На этапе "Тестируем приложение" после запуска и нажатия на кнопку 'Generate', получаю сообщение:
module 'password' has no attribute 'create_new'
Что делать?
Я вас очень прошу, скажите как сделать из 1х2\1х2(квадрат), колонок в 1х2\1x1(сверху 2 колонки, внизу 1)?
Код в виде и на гитхабе отличается ;)
мне кажется, что tkinter хорош, но блина custom tkinter та лучше!
pip : Имя "pip" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Про
верьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ pip install customtkinter
+ ~~~
+ CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Что делать?
попробуй или переустановить python, или зайти в дерикторий с python если в cmd если в мак ОС попробуй переустановить Pythom
Необходимо еще инициировать checkbox, иначе при попытке генерации вылетает с ошибкой
Да знаю проблему, забыл об этом. Можно установить как значение по умолчанию
Таблиц для данных нет?
Нет, можно встраивать из ttk
А как можно собрать это приложение в EXE-файл? Смотрел ваш видосик по этому вопросу, но приложение всё равно вылетает с ошибкой после запуска.
pyinstaller
@@Anjinink я его и использовал для сборки. Собранный exe-файл вылетает с ошибкой.
Пользуюсь auto-py-to-exe, проблем со стандартным tkinter не возникало.
а на этом Питоне Колду можно нарисовать?
Можно но будет 3 fps)
помогите пожалуйста, выдаёт ошибку module password has no attribute create_new
Привет, где можно сам код посмотреть?
В описании под видео
Если по умолчанию поставить "Dark" тему, то она не становится темной.
Можете в телеграмм отправить свой код, смогу помочь
Но ведь у него нет визуального редактора как у qt. Зачем это г нужно? Выставлять кнопочки на форму мышкой придумали ещё лет 20 назад, алё!
посмотрел год назад ничего не понял начал учить пайтон через год все равно ничего не понял
Боже... Зачем использовать это, если есть GTK и LibAdwaita
Можете рассказать о них поподробнее пожалуйста?
На винде из коробки работает же?
@@looongjek не знаю, не работаю под виндой
Так они не кроссплатформа... Кринжанул
@@mrybsdev1006 ты кринжанул из-за того, что не шаришь за GTK. Естественно он кроссплатформенный
Нда... В PyQt это делается намного проще
Я бы не сказал, для простого интерфейса хорошо подходит Customtkinter. PyQt для более серьезных вещей
Все еще не pyqt
спасибо конечно за контент, полезно, однако посмотрите на других кодеров, которые обучают , смотря на Вас, складывается ощущение, что вы куда то бежите, быстрее быстрее надо, в обучении так не катит, или просто вы сами не понимаете, что делаете, читаете сценарий, а потом переписываете код
пожалуйста, будьте чуть спокойнее, обьясняйте более детально что и как
Я не профессионал, но буду учится преподносить материал! Спасибо за Вас отзыв, мне это очень ценно!
Гайд годный но кахтавасть если честно мешает понимаю. Сам тоже картавлю, но вродь не так сильно))
Ужасно, не пишите такой код. Естественно куча ошибок....
Вместо pillow image tkinter научили принимать бунарник
Избавляйтесь от этой дурной привычки писать в ООП
GUI с ООП - стандарт индустрии
Только спагетти и дублирование! Вы что, макароны любите меньше, чем бездушные инкапсуляции, наследования , прости господи, полиморфизм? Может ещё и метапрограммированием балуетесь? А?)))
Избавляйтесь от этой дурной привычки писать комментарии
@@PrizrakZamkov Перестань себе швабру в задний проход пихать!!!
ну давай аргументируй почему нужно писать не в ООП
Стыд)
Провал…
Ти з України?
Чому б тобі не перейти на українську? В україномовному ютубі дуже не вистачає такого контенту як в тебе....
Я б тоді підписався і слідкував за твоїми відосами)
Так, я почав створювати укр канал
youtube.com/@recode9916
@@ITHobbies Підписався. Чекатиму на нові відео)
Можно р научится говорить, а не лениться это сделать?
С сожалением наблюдаю деградацию технологий разработки - писать интерфейс вручную 25 минут для пары кнопок, это абсурд. Куда катится этот мир?! В 2000 году были сделаны величайшие разработки C-Builder и Delphi, с помощью которых аналогичное приложение можно сделать буквально написав пару строчек кода, минуты за 2-3. Но видимо я чего то не понимаю....
Как я вас прекрасно понимаю! Один из студентов писал на пайтоне десктопное приложение. Времени на это ушло не особо много, но вот ui был приветом из времён win мелениум и код был полон этих настроек ui и событий. Тут в видео хотя бы была задумка разбить логику и ui, но у студента всё было вместе.
WPF, net maui хоть что то современное. Да и дельфя ещё годится для этого. Но пайтон...
Да, к сожалению Вы не учли такую вещь как кодогенерация. То есть, что бы быстро рисовать такие интерфейсы, как в Делфи нужен дополнительный инструмент, в котором вы как в графическом редакторе будете рисовать пользовательский интерфейс, а потом на каждый объект будете описывать метод и событие.
@@vladimirmashkov ну, в питоне он есть и незачем городить другие библиотеки, в питоне в принципе gui никому не нужен..
@@clarkdevlin8109 не соглашусь. Если был бы не нужен, то не было библиотек, а их нормальное количество. Тот же Flet развивается активно.
Спасибо за видео!
Спасибо!
Можно р научится говорить, а не лениться это сделать?
минутка тупого юмора