Читаем Создание настольных Python приложений с графическим интерфейсом пользователя полностью

Kivy — это многоплатформенная среда разработки приложений для Python, которая позволяет разрабатывать приложения для Windows, Linux, Android, macOS, iOS и Raspberry Pi.

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

Она также позволяет получать доступ к мобильным API-интерфейсам для управления такими вещами, как камера на телефоне, отслеживание GPS, вибратор и т. д.

Kivy включает в себя различные модули для воспроизведения видео файлов и потоков.

Kivy использует широкий спектр виджетов, поддерживающих мультитач и жесты.

Киви использует PyGame для простого создания игр.

И PyGame поставляется с различными модулями для рисования форм, работы с цветами и воспроизведения музыки.

Для разработки Киви приложения создадим проект в

PyCharm

и в окне терминала наберем команду установки Киви.

Далее мы можем запустить готовые примеры приложений Киви.

И мы можем сами теперь создавать Киви приложения.

Прежде всего мы должны импортировать kivy.

Теперь, чтобы создать интерфейс Kivy, нам нужно импортировать модуль приложения App.

Далее импортируем метку.

И определим класс с функцией, которая возвращает корневой виджет — метку.

Затем инициализируем класс и вызовем его метод run, запустив приложение Киви.

К метке мы также можем применить стиль, то есть увеличить текст, размер, цвет и многое другое.

Вы можете изменить стиль текста с помощью разметки текста Text Markup.

Упаковка Киви приложения в исполняемый файл для различных платформ достаточно сложная и не всегда обходится без сложностей и ошибок.

Подробные инструкции для упаковки приложения можно найти в документации.

Виджет TextInput предоставляет поле для редактирования простого текста.

Этот виджет поддерживает Unicode, multiline, курсорную навигацию, выделение и буфер обмена.

И TextInput использует две разные системы координат — (x, y) — координаты в пикселях, в основном используются для рендеринга на экране и (col, row) — индекс курсора в символах / строках, используемый для выделения и перемещения курсора.

Чтобы создать однострочный текстовый ввод, можно установить для свойства TextInput.multiline значение False.

Здесь параметр size_hint — это набор значений, используемых макетами для управления размерами своих дочерних элементов. Он указывает размер относительно размера макета, а не абсолютный размер в пикселях.

Если вы не хотите использовать size_hint для ширины или для высоты, установите значение параметра None.

В этом примере Scatter используется для создания интерактивных виджетов, которые можно поворачивать и масштабировать двумя или более пальцами на системе мультитач.

Компоновка BoxLayout размещает виджеты вертикально один над другим или горизонтально один за другим.

И методом bind мы связываем значения двух виджетов — метки и поля ввода.

Виджет CheckBox — это особая кнопка с двумя состояниями, которую можно установить или снять.

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

Здесь мы для класса приложения устанавливаем два свойства active, с которыми связываем флажок и метку.

Затем с помощью метода bind мы связываем с флажком функцию, которая обрабатывает выбор флажка.

В результате при выборе флажка изменяется свойство active класса, которое связано с меткой.

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

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

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

И все кнопки в раскрывающемся списке будут запускать метод DropDown.select().

После его вызова текст основной кнопки будет отображать выбор из раскрывающегося списка.

Здесь в этом примере мы создаем раскрывающийся список DropDown и добавляем в него кнопки методом add_widge.

При этом мы связываем с кнопками метод dropdown.select, передавая в него текст кнопки.

Далее мы создаем виджет — кнопку и связываем с ней метод dropdown.open.

Таким образом, при нажатии кнопки список раскрывается.

И в этом примере мы запускаем приложение с помощью метода runTouchApp.

Это статическая функция, запускающая цикл приложения.

Если вы передадите в runtouchApp виджет, будет создано окно, и виджет будет добавлен в это окно как корневой виджет.

Виджет ScrollView предоставляет прокручиваемое окно просмотра.

И ScrollView принимает только один дочерний элемент и применяет к нему прокрутку в соответствии со свойствами scroll_x и scroll_y.

По умолчанию ScrollView позволяет прокручивать по осям X и Y.

Вы можете явно отключить прокрутку по оси, установив для свойств do_scroll_x или do_scroll_y значение False.

И вы должны тщательно указать размер вашего контента, чтобы получить желаемый эффект прокрутки.

Перейти на страницу:

Похожие книги