Анатолий Постолит - Разработка кроссплатформенных мобильных и настольных приложений на Python. Практическое пособие
- Название:Разработка кроссплатформенных мобильных и настольных приложений на Python. Практическое пособие
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:9785005618719
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Анатолий Постолит - Разработка кроссплатформенных мобильных и настольных приложений на Python. Практическое пособие краткое содержание
Разработка кроссплатформенных мобильных и настольных приложений на Python. Практическое пособие - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Листинг 2.36. Пример использования виджета Switch (модуль K_Switch_1.py)
# модуль K_Switch1.py
from kivy. app import App
from kivy. uix. switch import Switch
class MainApp (App):
…… def build (self):
…… …… sw = Switch (active=True)
…… …… return sw
MainApp().run ()
В этом модуле мы создали объект sw (кнопка выключатель) на основе базового класса Switch. Свойству active (состояние) присвоили значение True (включено). После запуска данного приложения получим следующий результат (рис.2.27).

Рис. 2.27.Результаты выполнения приложения из модуля K_Switch1.py
В данном примере объект Switch был создан в коде на языке Python. А сейчас реализуем тот же пример с использованием языка KV. Для этого создадим файл с именем K_ Switch_2.py и напишем в нем следующий код (листинг 2.36_1).
Листинг 2.36_1. Пример использования виджета Switch (модуль K_Switch_1.py)
# модуль K_Switch2.py
from kivy. app import App
from kivy.lang import Builder
KV = «»»
Switch:
…… active: True
«»»
class MainApp (App):
…… def build (self):
…… … … return Builder. load_string (KV)
MainApp().run ()
В данном примере объект Switch был создан в коде на языке KV, а результат работы приложения будет таким же, как представлено на предыдущем рисунке.
По умолчанию виджет является статичным с минимальным размером 83x32 пикселя. Выключатель Switch имеет ряд свойств, которые позволяют задать и получить некоторые параметры:
– active – состояние выключателя (по умолчанию имеет значение False)
– on_touch_down – событие (касание выключателя);
– on_touch_up – событие (выключатель отпущен);
– on_touch_move – событие (касание выключателя с перемещением).
К сожалению, данный элемент не имеет свойства text, поэтому для размещения поясняющих надписей нужно в паре использовать метку Label.
2.5.10. Виджет Video – окно для демонстрации видео
Виджет Video создает окно для демонстрации видео из видео файла и видео потока. Виджет Video имеет свойство play (проигрывать), которое может принимать два значения: True – начать проигрывание, False – остановить проигрывание.
Примечание.
В зависимости от вашей платформы и установленных плагинов вы сможете воспроизводить видео разных форматов. Например, поставщик видео pygame поддерживает только формат MPEG1 в Linux и OSX, GStreamer более универсален и может читать многие кодеки, такие как MKV, OGV, AVI, MOV, FLV (если установлены правильные плагины gstreamer).
Покажем на простом примере, как можно использовать виджет Video в приложении. Для этого создадим файл с именем K_Video1.py и напишем в нем следующий код (листинг 2.37).
Листинг 2.37. Пример использования виджета Video (модуль K_Video_1.py)
# модуль K_Video1.py
from kivy. app import App
from kivy.uix.video import Video
class MainApp (App):
…… def build (self):
…… … … video = Video(source="./Video/My_video.mp4», play=True)
…… … … return video
MainApp().run ()
В этом модуле мы создали объект video (окно для показа кадров) на основе базового класса Video. Свойству play (проигрывать) присвоили значение True (включено). После запуска данного приложения получим следующий результат (рис.2.28).

Рис. 2.28.Результаты выполнения приложения из модуля K_Video1.py
Примечание.
Если на вашем компьютере не воспроизводится видео, то, скорее всего это происходит из-за отсутствия нужных кодеков. Для воспроизведения видеофайлов разных форматов нужно в инструментальную среду дополнительно установить модуль ffpyplayer. Для этого необходимо в терминале Pycharm выполнить команду: pip install ffpyplayer
В данном примере объект video был создан в коде на языке Python. А сейчас реализуем тот же пример с использованием языка KV. Для этого создадим файл с именем K_Video_2.py и напишем в нем следующий код (листинг 2.37_1).
Листинг 2.37_1. Пример использования виджета Video (модуль K_Video_2.py)
# модуль K_Video2.py
from kivy. app import App
from kivy.lang import Builder
KV = «»»
Video:
…… source: "./Video/My_video.mp4»
…… … … play: True
«»»
class MainApp (App):
…… def build (self):
…… … … return Builder. load_string (KV)
MainApp().run ()
В данном примере объект Video был создан в коде на языке KV, а результат работы приложения будет таким же, как представлено на предыдущем рисунке.
Объект Video имеет ряд свойств, которые позволяют задать и получить некоторые параметры:
– source – источник (путь к файлу и имя видео файла)
– play – проигрывать (по умолчанию False, для запуска проигрывания установить -True);
– state – состояние (имеет три значения: play – проигрывать, pause – поставить на паузу, stop – остановить);
– volume – громкость звука, значение в диапазоне 0—1 (1 – полная громкость, 0 – отключение звука).
2.5.11. Виджет Widget – базовый класс (пустая поверхность)
Класс Widget является своеобразным базовым классом, необходимым для создания пустой поверхности, которая по умолчанию имеет черный цвет. Это некая основа, или базовый строительный блок интерфейсов GUI в Kivy. Кроме того, эта поверхность может использоваться как холст для рисования.
Покажем на простом примере, как можно использовать виджет Widget в приложении. Для этого создадим файл с именем K_Widget_1.py и напишем в нем следующий код (листинг 2.38).
Листинг 2.38. Пример использования виджета Widget (модуль K_Widget_1.py)
# модуль K_Widget_1.py
from kivy. app import App
from kivy. uix. widget import Widget
class MainApp (App):
…… def build (self):
…… … … wid = Widget ()
…… … … return wid
MainApp().run ()
В этом модуле мы создали объект wid (пустая поверхность) на основе базового класса Widget. После запуска данного приложения получим следующий результат (рис.2.29).

Рис. 2.29.Результаты выполнения приложения из модуля K_ Widget _1.py
Как видно из данного рисунка, класс Widget отобразил пустую поверхность. В данном примере объект wid был создан в коде на языке Python. А сейчас реализуем тот же пример с использованием языка KV. Для этого создадим файл с именем K_Widget_2.py и напишем в нем следующий код (листинг 2.39).
Листинг 2.39. Пример использования виджета Widget (модуль K_Widget_2.py)
# модуль K_Widget_2.py
from kivy. app import App
from kivy.lang import Builder
KV = «»»
Widget:
«»»
class MainApp (App):
…… def build (self):
…… … … return Builder. load_string (KV)
MainApp().run ()
В данном примере объект Widget был создан в коде на языке KV, а результат работы приложения будет таким же, как представлено на предыдущем рисунке.
У данного класса есть встроенный объект canvas, который можно использовать для рисования на экране. Данный объект может принимать события и реагировать на них. Кроме того, у данного встроенного объекта есть две важные инструкции: Color (цвет) и Rectangle (прямоугольник, рамка). С использованием данных инструкций для созданной поверхности можно задать цвет, или поместить на нее изображение.
Читать дальшеИнтервал:
Закладка: