СОВРЕМЕННЫЙ ГРАФИЧЕСКИЙ ИНТЕРФЕЙС НА PYTHON, используя библиотеку customtkinter

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ม.ค. 2025

ความคิดเห็น • 120

  • @mcomponent
    @mcomponent ปีที่แล้ว +18

    Хочу сразу отметить, что с QT вы получите немного меньшую производительность. Хотя обе библиотеки по сути - биндинги для C на Python, нужно отметить, что QT даёт больший уровень абстракции и сам по себе выглядит как комбайн (например, в нём есть API для работы с базой данных, GUI библиотека!).
    Кроме этого, отмечу, что customtkinter так же написан не лучшим образом. Хотя, судя по использованию классов он подразумевает ООП подход, на деле он часто нарушает его: использует статические переменные, в том числе модифицирует их значения буквально отовсюду. Помимо этого, не везде в коде присутствует документация, тайпинги. Существующая документация же написана на скорую руку и не придерживается какого-либо единого стиля (Google/NumPy и т.п.). Некоторые вещи реализованы откровенными костылями, например импорты, которые нигде не используются, но по какой-то неуказанной нигде неведомой причине должны оставаться в коде (как следует из заданного комментария). Хочу так же отметить, что код очень неоднороден: в некоторых местах используются слишком длинные и довольно сложные к восприятию и чтению конструкции, а в других используются базовые. Не везде выполняется принцип DRY (иногда это случается даже в пределах одного файла). Очень много используются словари (которые не всегда эффективны в памяти). И ещё много небольших недочётов и помарок. Также стоит отметить, что tkinter сам по себе имеет некоторое количество неприятных багов.
    Лично моё мнение - GUI на Python вообще не самое лучшее и продвинутое решение. На данный момент для GUI я предпочитаю Tauri (у него есть преимущества над Electron'ом + он использует Rust). На текущий момент времени, нормальных библиотек для работы с GUI на Python единицы (если они вообще существуют).

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว +5

      Спасибо за столь развернутый комментарий! Полезно самому было прочесть

    • @Shprotec
      @Shprotec 9 หลายเดือนก่อน +1

      У меня довольно простой проект в вузе, написал его на Tkinter, но теперь хочу сделать интерфейс более красивым. Я новичок в python, какую библиотеку лучше использовать ?

    • @yarko6734
      @yarko6734 8 หลายเดือนก่อน

      @@Shprotec можно перепистать на custom tk он красивее выглядит

    • @bestquizMLBB
      @bestquizMLBB 7 หลายเดือนก่อน

      @Shprotec , если хочешь, более менее современный интерфейс и при этом не учить другие языки, то советую фреймворк "Flet"

  • @lemyt2008
    @lemyt2008 5 วันที่ผ่านมา

    Есть небольшие баги в программе. 1. Если ни одна галочка не установлена, то программа выдает ошибку "IndexError: Cannot choose from an empty sequence". Нужно что бы по умолчанию галочка стояла хотя бы на цифрах. 2. Длинна пароля 0 не имеет смысла. Ни чего не отображается в окне. Нужно начинать длину пароля минимум с 1. 3. Указать длину пароля в GTkEntry совсем невозможно, только передвигая ползунок. 4. Сгенерированный пароль нельзя скопировать. Но не смотря на это автору респект и уважуха!

  • @vidismax
    @vidismax หลายเดือนก่อน +1

    Спасибо 😎👍Очень полезно 💥💥💥💯

    • @ITHobbies
      @ITHobbies  หลายเดือนก่อน

      И Вам спасибо!

  • @dedbabaniyaz2018
    @dedbabaniyaz2018 5 หลายเดือนก่อน

    Подача материала изумила! Браво!

    • @ITHobbies
      @ITHobbies  3 หลายเดือนก่อน

      Спасибо!

  • @nikkk2684
    @nikkk2684 ปีที่แล้ว +1

    Редко пишу комменты, но ты просто кроссавчик!)

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Спасибо 🙏

  • @РинатЗиганшин-б2р
    @РинатЗиганшин-б2р ปีที่แล้ว +9

    Было бы ещё неплохо, чтобы при вводе числа в GTkEntry изменялось положение ползунка.

  • @npu3paksoul
    @npu3paksoul 2 ปีที่แล้ว +7

    Спасибо за информацию. Как раз есть пару мелких программ с использованием tkinter, но не нравится оформление, а переписывать на pyqt не охота и громоздко )

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +3

      Сам открыл недавно для себя эту библиотеку и она действительно хороша. Замена стандартного tkinter с хорошим дизайном

  • @pon396
    @pon396 ปีที่แล้ว +1

    Годное видео, без воды, только внутри класса почему то главная цветовая тема не меняеться(типа CTk.set_default_color_theme("green")) :(

  • @vna2re2pac39
    @vna2re2pac39 ปีที่แล้ว +1

    Спасибо за отличный видос)

  • @сашабоброва-ш1ч
    @сашабоброва-ш1ч 9 หลายเดือนก่อน

    супер видео, спасибо 🎉

    • @ITHobbies
      @ITHobbies  3 หลายเดือนก่อน

      Спасибо!

  • @finiti5548
    @finiti5548 8 หลายเดือนก่อน +4

    Вот я не понимаю,как можно кодить десктопное приложение с GUI, если ты не видишь, как выглядит у тебя форма. Это очень не удобно. Для того, чтобы писать графический интерфейс, заранее нужно делать отдельно макет. А каждый раз запускать приложение ради того,чтобы посмотреть где находится элемент, тоже не хочется. Задача программиста делать всё максимально быстро и чётко, чтобы уложиться в дедлайн, а убить сначала время на создание примерного макета твоего интерфейса, а потом уже думать,как программно реализовать, в общем, запарно. Такое ощущение,что библиотека направлена на программистов уровня мидл - сеньор. Джунам тяжеловато будем привыкать к этому. В общем сомнительно...

    • @StartuePotoya
      @StartuePotoya 3 หลายเดือนก่อน

      А есть такие IDE, где HUD можно синхронить ? На ум приходит только Godot

  • @kirillbudanov5415
    @kirillbudanov5415 2 ปีที่แล้ว +2

    Круто!)))
    Спасибо большое)

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +1

      Мне приятно! Спасибо

  • @shuxratxonmaxmudov7256
    @shuxratxonmaxmudov7256 ปีที่แล้ว

    Привет вам большое спасибо.
    Надо продолжать серию такого видео урока

    • @ITHobbies
      @ITHobbies  3 หลายเดือนก่อน

      Спасибо!

  • @gameskolomiec1660
    @gameskolomiec1660 ปีที่แล้ว +1

    Не знаю зачем мне это, но интересно.Спасибо

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Спасибо)

  • @AHTOHmaister
    @AHTOHmaister 2 ปีที่แล้ว +2

    Спасибо за видео!

  • @ДмитрийЗаборенко
    @ДмитрийЗаборенко 2 ปีที่แล้ว +4

    Отличный урок, спасибо! Только нужно выбрать активный чекбокс по-умолчанию, т.к. без этого программа вылетает с ошибкой (если ни один чекбокс не выбран).

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +2

      Ага) чет я забыл про это! Подправлю на гитхабе

    • @Greiten
      @Greiten 2 ปีที่แล้ว +4

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

  • @blazedenshinobu
    @blazedenshinobu 2 ปีที่แล้ว +3

    Классный видос
    Лайк, подписка

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +1

      Спасибо!

  • @RhinoTimelaps
    @RhinoTimelaps ปีที่แล้ว +2

    Мне кстати интересно. А нет ли графических решений по строению окон и элементов? Как в Visual Studio > Windows form, UWP, etc. То есть, надо наугад тыкать значения чтобы понять, куда и какую кнопку нужно поставить?

    • @ivanh2674
      @ivanh2674 ปีที่แล้ว

      почему есть чере ui , pyqt

  • @IMPL_offical
    @IMPL_offical 3 หลายเดือนก่อน

    Подскажи пожалуйста какой PyCharm ты используешь а какой мне использовать на вин 10?

  • @dmitriykonopinskiy3793
    @dmitriykonopinskiy3793 ปีที่แล้ว +7

    Сделай сравнение customtkinter и PyQT в плане выбора.
    Контента крайне мало по многопоточности, например с трудом нашёл как запустить 2 окна одновременно (нужно создать поток с новым окном внутри петли Ткинтера перед mainloop())

  • @bulba1995
    @bulba1995 ปีที่แล้ว +1

    Хорошее видео , спасибо

  • @Fightertlt
    @Fightertlt ปีที่แล้ว +1

    Неплохо. Надо попробовать. Интересно, как будет такое приложение под линукс выглядеть, я пишу кроссплатформенные приложения т.к. за ними будущее. Интересно будет сравнить с PyQT библиотекой, которой пользуюсь в настоящее время..

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Для простых утилит норм. Если что-то серьезное то конечно pyqt

    • @Fightertlt
      @Fightertlt ปีที่แล้ว

      @@ITHobbies В моем случае достаточно. Я интерфейс пишу для работы с СУБД, типа: внести данные, изменить, удалить, сформировать отчет. можно это в виде веба сделать, но десктоп приложение да еще и кросплатформенное епе-то больше пользователям привычно. Задачу перенес с делфи, с которой пользователи 2 десятка лет работали. Да и опыта в веб разработке нету, а так переделал интерфейс на современный и ладно.

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      В PyQt работаете с БД через qsqlquerymodel?

    • @volodymyr.storozhuk
      @volodymyr.storozhuk ปีที่แล้ว

      На Linux выглядит точно также.

  • @wordpreslabs
    @wordpreslabs 2 ปีที่แล้ว +3

    Огромное спасибо за видео. Подскажите пожалуйста, как сделать pycharm такой же удобный как у вас, чтоб кнопки запуска были справа сверху. Спасибо

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +3

      Обновляете IDE до актуальной версии и в настройках включаем новый UI

    • @wordpreslabs
      @wordpreslabs 2 ปีที่แล้ว +2

      @@ITHobbies большое спасибо. Разобрался) выглядит реально круто и удобно

    • @NickCapitan
      @NickCapitan ปีที่แล้ว

      @@ITHobbies где в настройках включить новый UI?

    • @Sensys93
      @Sensys93 ปีที่แล้ว

      @@NickCapitan настройки New UI

  • @Snowman8526
    @Snowman8526 2 ปีที่แล้ว +1

    Это круто но для меня есть несколько проблем. Для запуска приложения нужно входить в виртуальное окружение после чего запускать приложение. Если Я делаю его для бухгалтера допустим на винде... проще сделать джанго)) Браузеры есть везде))

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +4

      Можно его сделать исполняемым файлом с расширением .exe если для винды. Есть видео на канале как это сделать

  • @LexaNavigator777
    @LexaNavigator777 7 หลายเดือนก่อน

    Привет, не могу нигде найти ответ на свой вопрос. Виджет Таблицы в Ткинтор умеет настраивать высоту строк или нет? Я загружаю в таблицу данные и если они не вмещаются в одну строчку и я начинаю переносить их на другую строку, то данные начинают наслаиваться друг на друга. Один элемент таблицы, пересекает ниже лежащий элемент таблицы. По сути получается грязь, текст по тексту. Кто столкнулся с этой проблемой, какое решение Вы нашли? :)... Надеюсь не забросить кодить :))... Потому-что это уже посещает мои мысли :)), когда долго что-то не получается :)...

  • @DavidDavid-zm1kj
    @DavidDavid-zm1kj ปีที่แล้ว

    Спасибо, но есть вопрос. У меня выпадающее меню комбобокса маленькое ... Может можно исправит?

  • @mak32
    @mak32 2 ปีที่แล้ว +2

    Идеально, жаль что из Tkinter до сих пор нельзя сформировать apk файлик на мобилку кинуть (хотя бы оффлайн приложение чтобы было)

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว +1

      Python и мобильная разработка действительно не очень развито. Но есть kivy и он развивается

    • @valera_kardan
      @valera_kardan ปีที่แล้ว +1

      @@ITHobbies Надо чтобы сам Python стал быстрее, в 3.11 сделали к этому большой шаг

    • @AlexanderOsnovnoi
      @AlexanderOsnovnoi ปีที่แล้ว +1

      Вроде есть Kivy. Не знаю, насколько он хорош, на питоне не пишу, но раз существует, значит его кто-то использует

  • @Anonim-im6ln
    @Anonim-im6ln ปีที่แล้ว

    Very good!!

  • @AnatolAfendyk-EMG
    @AnatolAfendyk-EMG 10 หลายเดือนก่อน

    На этапе "Тестируем приложение" после запуска и нажатия на кнопку 'Generate', получаю сообщение:
    module 'password' has no attribute 'create_new'
    Что делать?

  • @РоманБурч-я1е
    @РоманБурч-я1е ปีที่แล้ว

    Я вас очень прошу, скажите как сделать из 1х2\1х2(квадрат), колонок в 1х2\1x1(сверху 2 колонки, внизу 1)?

  • @АлексейЧеремных-ь9е
    @АлексейЧеремных-ь9е ปีที่แล้ว +1

    Код в виде и на гитхабе отличается ;)

  • @dino_corp-YT
    @dino_corp-YT 20 ชั่วโมงที่ผ่านมา

    мне кажется, что tkinter хорош, но блина custom tkinter та лучше!

  • @IMPL_offical
    @IMPL_offical 3 หลายเดือนก่อน

    pip : Имя "pip" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Про
    верьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.
    строка:1 знак:1
    + pip install customtkinter
    + ~~~
    + CategoryInfo : ObjectNotFound: (pip:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    Что делать?

    • @dino_corp-YT
      @dino_corp-YT 20 ชั่วโมงที่ผ่านมา

      попробуй или переустановить python, или зайти в дерикторий с python если в cmd если в мак ОС попробуй переустановить Pythom

  • @AlexeySolovyev55
    @AlexeySolovyev55 ปีที่แล้ว

    Необходимо еще инициировать checkbox, иначе при попытке генерации вылетает с ошибкой

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Да знаю проблему, забыл об этом. Можно установить как значение по умолчанию

  • @Cyr173
    @Cyr173 ปีที่แล้ว +1

    Таблиц для данных нет?

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Нет, можно встраивать из ttk

  • @РинатЗиганшин-б2р
    @РинатЗиганшин-б2р ปีที่แล้ว

    А как можно собрать это приложение в EXE-файл? Смотрел ваш видосик по этому вопросу, но приложение всё равно вылетает с ошибкой после запуска.

    • @Anjinink
      @Anjinink ปีที่แล้ว

      pyinstaller

    • @РинатЗиганшин-б2р
      @РинатЗиганшин-б2р ปีที่แล้ว

      @@Anjinink я его и использовал для сборки. Собранный exe-файл вылетает с ошибкой.

    • @ЕвгенийКалганов-ч1л
      @ЕвгенийКалганов-ч1л ปีที่แล้ว

      Пользуюсь auto-py-to-exe, проблем со стандартным tkinter не возникало.

  • @sashas703
    @sashas703 ปีที่แล้ว

    а на этом Питоне Колду можно нарисовать?

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Можно но будет 3 fps)

  • @frost1k775
    @frost1k775 ปีที่แล้ว

    помогите пожалуйста, выдаёт ошибку module password has no attribute create_new

  • @thedrone4695
    @thedrone4695 ปีที่แล้ว

    Привет, где можно сам код посмотреть?

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว +1

      В описании под видео

  • @insightgs2
    @insightgs2 ปีที่แล้ว

    Если по умолчанию поставить "Dark" тему, то она не становится темной.

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Можете в телеграмм отправить свой код, смогу помочь

  • @АлексейИванов-ч3ы6к
    @АлексейИванов-ч3ы6к ปีที่แล้ว

    Но ведь у него нет визуального редактора как у qt. Зачем это г нужно? Выставлять кнопочки на форму мышкой придумали ещё лет 20 назад, алё!

  • @Triplesphrb
    @Triplesphrb ปีที่แล้ว

    посмотрел год назад ничего не понял начал учить пайтон через год все равно ничего не понял

  • @electro3622
    @electro3622 ปีที่แล้ว +11

    Боже... Зачем использовать это, если есть GTK и LibAdwaita

    • @izerogames1915
      @izerogames1915 ปีที่แล้ว

      Можете рассказать о них поподробнее пожалуйста?

    • @looongjek
      @looongjek ปีที่แล้ว

      На винде из коробки работает же?

    • @electro3622
      @electro3622 ปีที่แล้ว +1

      @@looongjek не знаю, не работаю под виндой

    • @mrybsdev1006
      @mrybsdev1006 ปีที่แล้ว

      Так они не кроссплатформа... Кринжанул

    • @electro3622
      @electro3622 ปีที่แล้ว

      @@mrybsdev1006 ты кринжанул из-за того, что не шаришь за GTK. Естественно он кроссплатформенный

  • @user_-Vovchik
    @user_-Vovchik ปีที่แล้ว

    Нда... В PyQt это делается намного проще

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Я бы не сказал, для простого интерфейса хорошо подходит Customtkinter. PyQt для более серьезных вещей

  • @Iceiceiceiceic
    @Iceiceiceiceic ปีที่แล้ว

    Все еще не pyqt

  • @haykera2338
    @haykera2338 ปีที่แล้ว +3

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

    • @ITHobbies
      @ITHobbies  3 หลายเดือนก่อน

      Я не профессионал, но буду учится преподносить материал! Спасибо за Вас отзыв, мне это очень ценно!

  • @_M.i.h.a.i.l._
    @_M.i.h.a.i.l._ ปีที่แล้ว +1

    Гайд годный но кахтавасть если честно мешает понимаю. Сам тоже картавлю, но вродь не так сильно))

  • @ДмитрийДементеев-к6б
    @ДмитрийДементеев-к6б ปีที่แล้ว

    Ужасно, не пишите такой код. Естественно куча ошибок....

  • @СпециальныйагентСтивенс-ФБР

    Избавляйтесь от этой дурной привычки писать в ООП

    • @ITHobbies
      @ITHobbies  2 ปีที่แล้ว

      GUI с ООП - стандарт индустрии

    • @EvgenyKa
      @EvgenyKa 2 ปีที่แล้ว +1

      Только спагетти и дублирование! Вы что, макароны любите меньше, чем бездушные инкапсуляции, наследования , прости господи, полиморфизм? Может ещё и метапрограммированием балуетесь? А?)))

    • @PrizrakZamkov
      @PrizrakZamkov ปีที่แล้ว +8

      Избавляйтесь от этой дурной привычки писать комментарии

    • @СпециальныйагентСтивенс-ФБР
      @СпециальныйагентСтивенс-ФБР ปีที่แล้ว

      @@PrizrakZamkov Перестань себе швабру в задний проход пихать!!!

    • @user-mc8tn9qn3d
      @user-mc8tn9qn3d ปีที่แล้ว

      ну давай аргументируй почему нужно писать не в ООП

  • @hgmdev
    @hgmdev ปีที่แล้ว

    Стыд)

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Провал…

  • @pro100deskree
    @pro100deskree ปีที่แล้ว

    Ти з України?
    Чому б тобі не перейти на українську? В україномовному ютубі дуже не вистачає такого контенту як в тебе....
    Я б тоді підписався і слідкував за твоїми відосами)

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว +3

      Так, я почав створювати укр канал
      youtube.com/@recode9916

    • @pro100deskree
      @pro100deskree ปีที่แล้ว

      @@ITHobbies Підписався. Чекатиму на нові відео)

  • @Ivashkinmd
    @Ivashkinmd ปีที่แล้ว

    Можно р научится говорить, а не лениться это сделать?

  • @ДенисБородин-т9п
    @ДенисБородин-т9п ปีที่แล้ว +5

    С сожалением наблюдаю деградацию технологий разработки - писать интерфейс вручную 25 минут для пары кнопок, это абсурд. Куда катится этот мир?! В 2000 году были сделаны величайшие разработки C-Builder и Delphi, с помощью которых аналогичное приложение можно сделать буквально написав пару строчек кода, минуты за 2-3. Но видимо я чего то не понимаю....

    • @ASUSVOLT
      @ASUSVOLT ปีที่แล้ว

      Как я вас прекрасно понимаю! Один из студентов писал на пайтоне десктопное приложение. Времени на это ушло не особо много, но вот ui был приветом из времён win мелениум и код был полон этих настроек ui и событий. Тут в видео хотя бы была задумка разбить логику и ui, но у студента всё было вместе.
      WPF, net maui хоть что то современное. Да и дельфя ещё годится для этого. Но пайтон...

    • @vladimirmashkov
      @vladimirmashkov ปีที่แล้ว +1

      Да, к сожалению Вы не учли такую вещь как кодогенерация. То есть, что бы быстро рисовать такие интерфейсы, как в Делфи нужен дополнительный инструмент, в котором вы как в графическом редакторе будете рисовать пользовательский интерфейс, а потом на каждый объект будете описывать метод и событие.

    • @clarkdevlin8109
      @clarkdevlin8109 ปีที่แล้ว

      @@vladimirmashkov ну, в питоне он есть и незачем городить другие библиотеки, в питоне в принципе gui никому не нужен..

    • @slashfast
      @slashfast 10 หลายเดือนก่อน

      @@clarkdevlin8109 не соглашусь. Если был бы не нужен, то не было библиотек, а их нормальное количество. Тот же Flet развивается активно.

  • @1Chitus
    @1Chitus ปีที่แล้ว +2

    Спасибо за видео!

    • @ITHobbies
      @ITHobbies  ปีที่แล้ว

      Спасибо!

  • @Ivashkinmd
    @Ivashkinmd ปีที่แล้ว +2

    Можно р научится говорить, а не лениться это сделать?

    • @Gitenua
      @Gitenua ปีที่แล้ว +5

      минутка тупого юмора