Автор темы
Прежде чем переходить к коду, пару слов о том, чем Kivy отличается от других GUI-инструментов для Python. Главные его особенности — это ориентация на мультисенсорные (touch) интерфейсы и единая кодовая база сразу для нескольких платформ: Windows, Linux, macOS, а главное — Android и iOS. То есть приложение, которое вы напишете на десктопе, без переписывания логики можно собрать под мобильные ОС. Именно поэтому Kivy часто сравнивают с Flutter и PyQt, только в отличие от PyQt, он изначально спроектирован под кастомный интерфейс и сенсорный ввод, а не под классические оконные приложения. Это стоит держать в голове на протяжении всей серии.
Всем привет, решил сделать серию статей про Kivy и KivyMD. Я не UI разработчик, я просто умею делать приложения с помощью kivy.
Не надо ожидать того, что после этих статей вы сходу сделаете UI круче чем у google, vk и других приложений-гигантов.
Но одно я пообещать точно могу, приложения будут
.
Начнём!
KivyMD - набор виджетов в стиле Google Material Design для kivy
UI - пользовательский интерфейс
Ссылка на туториал от kivy для windows(прочитайте если есть проблемы с установкой или если хотите узнать большее)
Сначала установим зависимости:
Если у вас python 3.5+, то так же
Установим kivy.
Linux:
Тут проблем не должно возникнуть.
Так же в следующей части мы сделаем полноценное приложение, может даже попробуем его скомпилировать под какую-нибудь OC.
Тут всё просто, создаём класс MainApp, который наследует класс App, переопределяем метод build, возвращаем кнопку.
Запустите код, если у вас появится кнопка на весть экран как на фото, то мои поздравления, вы установили kivy.
Стоит разобрать виджет button(класс Button), по умолчанию, он занимаёт 100 % от доступного ему места по оси x(за это отвечает size_hint_x) и по оси y (за это отвечает size_hint_y). Давайте попробуем сделать 2 вещи:
1) Сделаем так, чтобы кнопка занимала 100 % от ширины(ось x) и 50 % от высоты(ось y).
Или проще:
2)
Поставим кастомный размер.
Чтобы сделать это, сначала нам нужно поставить size_hint_x и size_hint_y на None, и задать атрибут size.
Всем привет, решил сделать серию статей про Kivy и KivyMD. Я не UI разработчик, я просто умею делать приложения с помощью kivy.
Не надо ожидать того, что после этих статей вы сходу сделаете UI круче чем у google, vk и других приложений-гигантов.
Но одно я пообещать точно могу, приложения будут
Начнём!
Коротко о каждом
Kivy - python фреймворк который позволяет создавать кроссплатформенные приложения.KivyMD - набор виджетов в стиле Google Material Design для kivy
Чтобы не оставалось вопросов
Виджет - это небольшой вспомогательный элемент/компонент приложения(например кнопка), которое выполняет определенную функциюUI - пользовательский интерфейс
Установка kivy
Windows:Ссылка на туториал от kivy для windows(прочитайте если есть проблемы с установкой или если хотите узнать большее)
Сначала установим зависимости:
Код:
python -m pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.* kivy_deps.glew==0.1.*
python -m pip install kivy_deps.gstreamer==0.1.*
Код:
python -m pip install kivy_deps.angle==0.1.*
Установим kivy.
Код:
python -m pip install kivy
Тут проблем не должно возникнуть.
Код:
sudo apt update
sudo apt install python3-kivy
Первое приложение
Чтобы создать kivy приложение вам нужно:- создать класс приложения(в нашем случае MainApp) который наследует kivy класс App
- переопределить метод build, этот метод возвращает root виджет(т.е главный виджет), потом приложение его(root виджет) рисует/отображает.
Так же в следующей части мы сделаем полноценное приложение, может даже попробуем его скомпилировать под какую-нибудь OC.
Python:
from kivy.app import App
from kivy.uix.button import Button
class MainApp(App):
def build(self):
button = Button(text='The first app', size_hint_x=1, size_hint_y=1)
return button
MainApp().run()
Тут всё просто, создаём класс MainApp, который наследует класс App, переопределяем метод build, возвращаем кнопку.
Запустите код, если у вас появится кнопка на весть экран как на фото, то мои поздравления, вы установили kivy.
Стоит разобрать виджет button(класс Button), по умолчанию, он занимаёт 100 % от доступного ему места по оси x(за это отвечает size_hint_x) и по оси y (за это отвечает size_hint_y). Давайте попробуем сделать 2 вещи:
1) Сделаем так, чтобы кнопка занимала 100 % от ширины(ось x) и 50 % от высоты(ось y).
Код:
button = Button(text='The first app', size_hint_y=.5, size_hint_x=1)
Код:
button = Button(text='The first app', size_hint=(1, .5))
Поставим кастомный размер.
Чтобы сделать это, сначала нам нужно поставить size_hint_x и size_hint_y на None, и задать атрибут size.
Код:
button = Button(text='The first app', size_hint=(None, None), size=(200, 200))
Ссылки
- Components — KivyMD 0.104.2.dev0 documentation - документация по компонентам
- Kivy: Cross-platform Python Framework for NUI - официальный сайт kivy
- kivy/kivy - github kivy
- kivymd/KivyMD - github KivyMD
- AI-выжимка (тезисы)
- Коротко о каждом :: Kivy — кроссплатформенный python-фреймворк, KivyMD добавляет к нему виджеты в стиле Google Material Design.
Установка kivy :: На Windows kivy ставится через pip с зависимостями kivy_deps.sdl2, glew и gstreamer версии 0.1.*, на Linux достаточно apt install python3-kivy.
Первое приложение :: Kivy-приложение — это класс, наследующий App, где метод build возвращает root-виджет, который приложение отображает.
Последнее редактирование модератором: