Красивый графический интерфейс на Python используя DearPyGui

Поділитися
Вставка
  • Опубліковано 12 чер 2024
  • ⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
    ⭐ Телеграм канал: t.me/+WXMSs_qP6UVkNTYx
    В данном видео создадим красивое десктоп приложение с полного нуля, которое позволяет управлять удаленным сервером через Paramiko.
    Для этой задачи будем использовать библиотеку DearPyGui, которая позволяет создавать современный графический интерфейс. И также развернем виртуальное окружение Poetry вместо стандартного venv.
    PDF файл с фишками Poetry: t.me/codeblog8/221
    Исходный код проекта: (После 1000 лайков)
    Красивый интерфейс на Flet: • Красивый графический и...
    Современные веб-приложения на Streamlit: • Красивые веб-приложени...
    Фишки DearPyGui: • Красивый графический и...
    Современные приложения на CustomTkinter: • Современные графически...
    📁 Github: github.com/Zproger
    📁 Все плейлисты с уроками: bit.ly/39GaY89
    📁 Связаться со мной: zproger777@gmail.com
    📁 Поддержать канал: github.com/Zproger/donate
    Тайм-коды:
    0:00 - Какие возможности итоговой программы?
    0:52 - Все фишки Poetry в 1 PDF файле
    1:37 - Создаем проект на Poetry и устанавливаем библиотеки
    3:02 - Создаем окно с логотипом программы
    5:27 - Привязка нескольких шрифтов к объектам
    8:18 - Добавляем статус коннекта и кнопки для навигации
    9:15 - Создаем окно для авторизации на сервере
    11:30 - Создаем окно для работы с файлами на сервере
    13:20 - Тестируем готовый софт на DearPyGui + Paramiko

КОМЕНТАРІ • 62

  • @minecraftikful
    @minecraftikful 10 місяців тому +8

    Готов поклоняться твоему каналу❤‍🔥

    • @zproger
      @zproger  10 місяців тому +1

      Благодарю :D

  • @egorub1qbj842
    @egorub1qbj842 10 місяців тому +5

    Отличное видео! Также могли бы Вы рассказать про операции с битами (не байтами, а именно с битами. 1 и 0) в Python? Напимер как сделать сдвиговый регистр для bin файла из большого кол-ва байт? Про битовые маски и т.д.? Это было бы интересно, я думаю :)

  • @mxustin
    @mxustin 9 місяців тому

    С меня, как всегда, лайк!

  • @nakamasama
    @nakamasama 10 місяців тому +4

    Мне бы хотелось посмотреть, какие есть библиотеки-движки в Питоне. Хотелось бы свою простенькую игру сделать. А PyGame, это не игровой движок, а мультимедийный фреймворк. Всю физику там нужно самому писать... Мне интересно, может ты можешь посоветовать какие-то библиотеки или фреймворки?

    • @zproger
      @zproger  10 місяців тому +3

      Есть пару таких либ, возможно видео сделаю

  • @SupSKotom65
    @SupSKotom65 5 місяців тому

    Здравствуй! Когда я скачиваю эту библиотеку у меня вылезает ошибка: ERROR: Could not find a version that satisfies the requirement dearpygui (from versions: none)
    ERROR: No matching distribution found for dearpygui. Версия python 3.9.0

  • @hackhype2382
    @hackhype2382 10 місяців тому

    ура он это сделал zproger ты лучший dearpygui узнал только из за тебя!!!!

    • @zproger
      @zproger  10 місяців тому

      Благодарю!

  • @ARTURTONOYAN14
    @ARTURTONOYAN14 6 місяців тому +1

    Выравнивание текста по центру можно сделать так.
    text_width = dpg.get_item_rect_size(title)[0]
    text_height = dpg.get_item_rect_size(title)[1]
    (window_width // 2) - (text_width // 2)
    (window_height // 2) - (text_height // 2)

  • @abuzdev
    @abuzdev 10 місяців тому +11

    у DearPyGui единственный минус в том что нет поддержки русского языка, можно поставить свой шрифт с русским языком, но если вводить кириллицу в input он не будет отображаться :(

    • @zproger
      @zproger  10 місяців тому +1

      Возможно скоро исправят =)

    • @talequale2302
      @talequale2302 10 місяців тому +3

      Это далеко не единственный минус... Это и многое другое, как указал автор, делается через костыли, что вызывает отторжение. Из-за того, что пакет работает с ansi(!) кодировкой, а не с utf-8, для русского нужны функции пакета:
      - dpg.add_font_range_hint(dpg.mvFontRangeHint_Cyrillic),
      - pg.add_char_remap(...) на каждую букву.
      Но, невозможно (или я не нашел) ввести русский заголовок окна приложения!
      Пакет привлекает своим классным интерфейсом в отличие от qt (обычный виндовый интерфейс), flet (топорные виджеты) и kivy (чуть получше, для андротелефона пойдет).
      Ещё огромный минус в том, что разработчик спрятал от нас (съинкапсулировал) все вкусности графических объектов (размеры виджетов, цвета и пр.), оставив нам лишь куцый список функций с ограниченными возможностями по модифицированию виджетов.
      Меня еще, например, после недолгого использования перестало удовлетворять поведение меню окна. При нормальном поведении чтобы открыть меню нужно кликнуть мышью по разделу меню, и потом, перейдя курсором на другой раздел меню, старый раздел должен закрыться, а новый - открыться автоматически. Но нет, здесь нужно опять щёлкать мышью (Issue#2131). Вроде бы мелочь, но напрягает. И таких мелочей в пакете накапливается на то, чтобы перейти в конце концов на qt(
      Пакет был бы хорош, если бы практически не остановился. А жаль! Мог бы получиться наикрутейший ГУИ-фреймворк. Ну, невозможно одному тянуть такую махину! Над такими пакетами, как qt и kivy работают целые команды. А здесь основной разработчик Джонатан Хоффстадт из Хьюстона (Техас) сейчас посвящает себя, в основном, лёгкому игровому движку Pilot Light, изредка исправляя баги в DearPyGui. Сужу по активности на github.

    • @denled1979
      @denled1979 10 місяців тому

      @@zproger
      Всё работает с этим кодом:
      import dearpygui.dearpygui as dpg
      dpg.create_context()
      big_let_start = 0x00C0 # Capital "A" in cyrillic alphabet
      big_let_end = 0x00DF # Capital "Я" in cyrillic alphabet
      small_let_end = 0x00FF # small "я" in cyrillic alphabet
      remap_big_let = 0x0410 # Starting number for remapped cyrillic alphabet
      alph_len = big_let_end - big_let_start + 1 # adds the shift from big letters to small
      alph_shift = remap_big_let - big_let_start # adds the shift from remapped to non-remapped
      with dpg.font_registry():
      with dpg.font("fonts/Akrobat-SemiBold.otf", 18) as default_font:
      dpg.add_font_range_hint(dpg.mvFontRangeHint_Default)
      dpg.add_font_range_hint(dpg.mvFontRangeHint_Cyrillic)
      biglet = remap_big_let # Starting number for remapped cyrillic alphabet
      for i1 in range(big_let_start, big_let_end + 1): # Cycle through big letters in cyrillic alphabet
      dpg.add_char_remap(i1, biglet) # Remap the big cyrillic letter
      dpg.add_char_remap(i1 + alph_len, biglet + alph_len) # Remap the small cyrillic letter
      biglet += 1 # choose next letter
      dpg.bind_font(default_font)
      dpg.create_viewport(title='Основное окно программы', width=800, height=600)
      dpg.setup_dearpygui()
      with dpg.window(label="Еще одно окно"):
      dpg.add_text("Просто текст")
      dpg.add_button(label="Сохранить")
      dpg.add_input_text(label="строка")
      dpg.add_slider_float(label="число с плавающей точкой")
      dpg.show_viewport()
      dpg.start_dearpygui()
      dpg.destroy_context()

    • @4kaSOSiso
      @4kaSOSiso 8 місяців тому

      @@zproger До сих пор не исправили? Мусор тогда.

    • @mxustin
      @mxustin 4 місяці тому

      @@4kaSOSiso 2024-й (январь) нормальной работы с русскими буквами добиться не удалось... (может, конечно, у меня руки кривые...)

  • @besplatniy_maphack
    @besplatniy_maphack 7 місяців тому

    А где можно скачать именно этот исходник я везде искал

  • @nord_west
    @nord_west 10 місяців тому

    Расскажи каким дистрибутивом линукса пользуешься. Хочу такой же.

    • @zproger
      @zproger  10 місяців тому

      Arch Linux BSPWM

  • @alievrustam0848
    @alievrustam0848 10 місяців тому +1

    Здравствуй Zproger[IT]. Можешь посоветовать новичку как практиковаться после основ Python и где? Знаю есть платформы Leetcode, codewars, hackerrank, помогут ли они мне?

    • @zproger
      @zproger  10 місяців тому +2

      Можно либо использовать эти платформы либо начать делать проекты + параллельно внедрять в них новые изученные технологии.

    • @alievrustam0848
      @alievrustam0848 10 місяців тому +1

      @@zproger спасибо за ответ

  • @gotchaaa
    @gotchaaa 7 місяців тому

    5:23 как вы сделали окно плавающим?

  • @CHRNBRY
    @CHRNBRY 10 місяців тому

    Возможно, вопрос уже набил оскомину, но я пока его не встречал. Где взять такое оформление и что какой дистрибутив?

    • @zproger
      @zproger  10 місяців тому +1

      Это BSPWM. Дистрибутив Arch Linux.

  • @olegburtoviy7879
    @olegburtoviy7879 8 місяців тому

    Process finished with exit code -1073741819 (0xC0000005) как исправить ошибку?

  • @user-un6sj6eh8g
    @user-un6sj6eh8g 10 місяців тому +1

    Какой у тебя линукс? Что за оформление такое красивое?😮🎉

    • @zproger
      @zproger  10 місяців тому +2

      BSPWM

  • @suntukhta
    @suntukhta 10 місяців тому +1

    Что за ide?

  • @pro.game.
    @pro.game. Місяць тому +3

    Я люблю на PyQT5 писать,
    на это есть несколько причин:
    1. Много язычность, используя QT Designer или другие программы можно создавать приложения как для Python так и для других ЯП например C++
    2. Удобный конструктор приложения (QT Designer и т.д программы)

  • @artskyll
    @artskyll 10 місяців тому

    Есть один замечательный фреймворк для создания настольных приложений из вед-приложений - Tauri. Схож с electron, но легче, быстрее и + работает на rust. И в Roadmap разработчиков есть планы на связку с python. Вот такие, вот пироги.

    • @artskyll
      @artskyll 10 місяців тому

      Но это в будущем.

    • @zproger
      @zproger  10 місяців тому

      Благодарю, честно, не пробовал еще его юзать, но думаю что штука хорошая.

  • @bogdantuz8017
    @bogdantuz8017 9 місяців тому

    Какую операционную систему и какую среду программирование ты используешь?

    • @ce2434
      @ce2434 5 місяців тому

      Арч операционка, среду не узнал

  • @user-ts6wk3mu2l
    @user-ts6wk3mu2l 10 місяців тому

    Родной мой, расскажи, пожалуйста про reflex (раньше назывался pynecone) мне кажется он стоит того, чтобы о нём рассказать)

    • @zproger
      @zproger  10 місяців тому

      Спасибо за идею, возможно сделаю

  • @starling000
    @starling000 10 місяців тому

    javascript tutorials when?

  • @Valorant_Gamer5500
    @Valorant_Gamer5500 9 місяців тому

    а какой ты редактор используешь?

  • @suleymanaliev1459
    @suleymanaliev1459 10 місяців тому

    Что за окружение? Красивая ОС, Gnome?

    • @zproger
      @zproger  10 місяців тому

      Это BSPWM

  • @ApexInspire-Hub
    @ApexInspire-Hub 10 місяців тому

    Скинь образ своей ОС бро, очень красивая
    UP UP UP UP UP UP UP UP UP UP UP UP UP UP

    • @zproger
      @zproger  10 місяців тому

      Скину когда будет готова ;)

  • @ensql
    @ensql 6 місяців тому

    Это винда у вас или линукс?

    • @zproger
      @zproger  6 місяців тому

      Линукс

  • @Belgorod_Jedi
    @Belgorod_Jedi 10 місяців тому

    Да уж, любит же девелопер декрпайгуи контекстные менеджеры

  • @sol1arisgd
    @sol1arisgd 10 місяців тому +1

    жду конфиг nvim день 35

    • @dipl232
      @dipl232 10 місяців тому

      nvchad.
      Автокомплит толком не работает.
      Nvchad изначально для веб'а разрабатывался, но даже там автокоплита нет.

    • @artskyll
      @artskyll 10 місяців тому

      Штука в том что надо настроить lsp сервер. Поставил lunarvim через lspinstall скачал pyright flake8 и ещё что то сижу радуюсь. Может я криворукий или ещё что но такой фокус у меня не прошёл с nvchad. И у lunarvim есть плюс один пробел +w сохраняет изменения и пробел q выходит из файла это довольно удобно

  • @qweqweqweqweqweqweqweqw
    @qweqweqweqweqweqweqweqw 10 місяців тому +1

    Dearpygui конечно хорош, но flet во всех аспектах его выигрывает. Пишу сейчас на ней проект и просто чудо фреймворк)

    • @zproger
      @zproger  10 місяців тому

      Есть такое ;)

    • @Amigun_yo
      @Amigun_yo 10 місяців тому

      Они для разных задач

    • @MrNikobraz
      @MrNikobraz 10 місяців тому

      @@Amigun_yo а подробнее? В чем разница? Вот я их не тыкал, не вижу кардинальной разницы по видео.

  • @user-mi1mh7xt4b
    @user-mi1mh7xt4b 10 місяців тому +1

    Політичне питання: z- підтримка війни чи скорочення від the ?

    • @zproger
      @zproger  10 місяців тому +2

      этому нику 4 года

    • @mndtr0
      @mndtr0 10 місяців тому

      Есть такой язык, кстати, Z# называется (он любительский), просто забавно, что видео про него вышло за пару недель до начала войны...

  • @mndtr0
    @mndtr0 10 місяців тому

    0:17 поаккуратнее с -языком- клавишами, молодой человек, следите за своим английским =)
    (Шучу)

  • @andynaz7044
    @andynaz7044 10 місяців тому

    Нашёл на чём делать GUI - на DearPy... Это ж говнище мерзкое!

    • @zproger
      @zproger  10 місяців тому

      Это как сказать что яблоки вкуснее бананов, это ведь абстрактно и ваше мнение не может быть 100% истиной для всех. Ну и приложение я сделал именно на нем, потому что в прошлом видео обещал это реализовать. Как раз таки об этом я и говорил в первых минутах видео ;)

    • @mndtr0
      @mndtr0 10 місяців тому

      А что предлагаете тогда?

    • @0x00AE1C9B
      @0x00AE1C9B 10 місяців тому

      DPG хоть и выглядит современно, но функционал хромает, всё нужно делать на костылях, так ещё и противная система написания через with. Не совсем говнище, но всё таки мерзкое, даже на customtkinter делать GUI значительно приятнее. Из вариантов только пересаживаться на QT под PySide, там хотя бы виджеты есть.