Найти в Дзене
Golang-news

Введение в Kivy, кроссплатформенная библиотека графического интерфейса для компьютеров и мобильных устройств

Добро пожаловать в обновленную учебную серию Киви. Прошло довольно много лет с тех пор, как я в последний раз протыкал голову в Киви, и пришло время вернуться к этому! Kivy - это кроссплатформенная библиотека графического интерфейса для Python, работающая под Windows, Mac, Linux, Android и iOS. Идея заключается в том, что вы можете собрать приложение в одной программе и использовать его практически на всех устройствах. Это супер крутая идея, но... только если она работает. Последний раз, когда я пробовал в Киви, мне было трудно заставить его работать на Android, что не должно быть слишком сложно. Посмотрим, как все пройдет на этот раз! Чтобы получить Киви, зависит от вашей операционной системы. Зайдите на Kivy.org, затем скачайте, а затем следуйте инструкциям, которые вы будете использовать. Это всего лишь серия команд, которые нужно запустить. Далее, как и многие другие вещи, я думаю, что лучше просто запрыгнуть без дальнейших объяснений. Ты знаешь, что такое Киви и почему это может

Добро пожаловать в обновленную учебную серию Киви. Прошло довольно много лет с тех пор, как я в последний раз протыкал голову в Киви, и пришло время вернуться к этому!

Kivy - это кроссплатформенная библиотека графического интерфейса для Python, работающая под Windows, Mac, Linux, Android и iOS. Идея заключается в том, что вы можете собрать приложение в одной программе и использовать его практически на всех устройствах. Это супер крутая идея, но... только если она работает. Последний раз, когда я пробовал в Киви, мне было трудно заставить его работать на Android, что не должно быть слишком сложно. Посмотрим, как все пройдет на этот раз!

Чтобы получить Киви, зависит от вашей операционной системы. Зайдите на Kivy.org, затем скачайте, а затем следуйте инструкциям, которые вы будете использовать. Это всего лишь серия команд, которые нужно запустить.

Далее, как и многие другие вещи, я думаю, что лучше просто запрыгнуть без дальнейших объяснений. Ты знаешь, что такое Киви и почему это может быть круто, теперь давай посмотрим, что мы сможем сделать.

Для начала, давайте сделаем базовое приложение, которое просто отобразит для нас какой-нибудь текст. Я сделаю новый файл под названием ourapp.py!

первое приложение на kivy
первое приложение на kivy

Код приложения:

import kivy # импортируем библиотеку
from kivy.app import App # запрос базового класса
from kivy.uix.label import Label # графический элемент текста
kivy.require("1.10.1") # версия приложения

class OurApp(App):
# инициализация корневого виджета
def build(self):
# Создаем ярлык, в котором будет только текст.
return Label(text="Привет всем!")

# Запуск приложения.
if __name__ == "__main__":
OurApp().run()

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

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

import kivy # импортируем библиотеку
from kivy.app import App # запрос базового класса
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label # графический элемент текста
from kivy.uix.textinput import TextInput
kivy.require("1.10.1") # версия приложения

class ConnectPage(GridLayout):
# инициализация главного класса
def __init__(self, **kwargs):
super().__init__(**kwargs)

self.cols = 2 # задаем количество колонок

# виджеты добавляются по порядку
self.add_widget(Label(text='IP:'))
self.ip = TextInput(multiline=False)
self.add_widget(self.ip)

self.add_widget(Label(text='Port:'))
self.port = TextInput(multiline=False)
self.add_widget(self.port)

self.add_widget(Label(text='Username:'))
self.username = TextInput(multiline=False)
self.add_widget(self.username)

class OurApp(App):
def build(self):
return ConnectPage()

if __name__ == "__main__":
OurApp().run()

Результат:

результат кода
результат кода

Отлично, вы увидели основы Киви и то, как быстро мы можем создать минимальное приложение. У нас пока нет ничего слишком красивого и интересного. В следующем уроке давайте посмотрим, как мы можем получить доступ к контенту, который набирает пользователь. Мы ожидаем, что пользователь введет некоторую информацию и, возможно, нажмет кнопку подключения. Отсюда мы хотим получить доступ к тому, что они набрали, и попытаться подключить их к чату!

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

Здесь можно увидеть продолжение.