Это продолжение, остальные статьи:
- Используйте язык KV
Использование языка KV
Kivy также предоставляет язык разработки под названием KV, который вы можете использовать со своими приложениями Kivy. Язык KV позволяет отделить дизайн интерфейса от логики приложения. Это следует принципу разделения интересов и является частью архитектурного шаблона MVC (Model-View-Controller). Вы можете обновить предыдущий пример, чтобы использовать язык KV:
from kivy.app import App
from kivy.uix.button import Button
class ButtonApp(App):
def build(self):
return Button()
def on_press_button(self):
print('Вы нажали на кнопку!')
if __name__ == '__main__':
app = ButtonApp()
app.run()
Этот код может показаться немного странным на первый взгляд, так как он создает Button без установки каких-либо своих атрибутов или привязки к каким-либо событиям. Здесь происходит то, что Kivy автоматически ищет файл, имя которого совпадает с именем класса в нижнем регистре, без App части имени класса.
В этом случае имя класса будет ButtonAppтаким, поэтому Kivy будет искать файл с именем button.kv. Если этот файл существует и правильно отформатирован, то Kivy будет использовать его для загрузки пользовательского интерфейса. Создайте этот файл и добавьте следующий код:
- <Button>:
- text: 'Нажми меня'
- size_hint: (.5, .5)
- pos_hint: {'center_x': .5, 'center_y': .5}
- on_press: app.on_press_button()
Вот что делает каждая строка:
- Строка 1 соответствует Button вызову в вашем коде Python. Он говорит Kivy, чтобы посмотреть на экземпляр объекта для определения кнопки.
- Строка 2 устанавливает кнопки text.
- Строка 3 устанавливает ширину и высоту с помощью size_hint.
- Строка 4 устанавливает позицию кнопки с помощью pos_hint.
- Строка 5 устанавливает on_press обработчик события. Чтобы сообщить Kivy, где находится обработчик событий, вы используете app.on_press_button(). Здесь Киви знает, что будет искать в Application классе метод с именем .on_press_button().
Вы можете настроить все свои виджеты и макеты внутри одного или нескольких языковых файлов KV. Язык KV также поддерживает импорт модулей Python в KV, создание динамических классов и многое другое. Для получения полной информации, ознакомьтесь с руководством Kivy по языку KV.
Теперь вы готовы создать настоящее приложение!
Продолжение следует.
Если вам понравилось подписывайтесь на канал, ставьте лайки, комментируйте!