Es ist ungefähr ein halbes Jahr her, seit ich ernsthaft mit dem Programmieren angefangen habe, aber als ich daran dachte, etwas zu machen, das wie eine App aussah, empfahl mir eine Taube, die ich auf Twitter getroffen hatte, Kivy, also begann ich mit Schwung. Ich hoffe, dass die Erklärung des Produktionsprozesses und der Inhalte anderen Menschen den Einstieg in die App-Entwicklung mit kivy erleichtert.
kivy ist ein Python, mit dem Sie Multi-Tap-Apps entwickeln können. Als Open-Source-Bibliothek können mit kivy erstellte Apps auf iOS- / Android-Geräten ausgeführt werden, einschließlich PC-Umgebungen wie macOS, Windows und Linux. Darüber hinaus kann kivy zusammen mit Python auch eine eigene Sprache namens KV-Sprache verwenden. Diese Funktion macht das Programm vielschichtig. Es scheint, dass es schwierig ist, diese KV-Sprache zu verstehen, und dass sie Japanisch nicht sehr gut unterstützt.
Nun, selbst wenn Sie nur die Gliederung lesen, bin ich mir nicht sicher, ob Sie es vorerst nicht versuchen! Lassen Sie uns also kivy sofort installieren und kivy starten, indem Sie das Tutorial Pong Game erstellen. ~~~. Ich habe mit einem entspannten Gefühl angefangen, aber ich konnte so etwas mit Kopieren und Einfügen machen, aber ich habe keine Ahnung, was im Programm vor sich geht. Ich bin ein Amateur, daher verstehe ich nicht wirklich, was Widget ist, und selbst wenn ich zur detaillierten Erklärung gehe, kann ich nicht an alle Wörter denken, die ich nicht kenne. Aufgrund der oben erwähnten KV-Sprache ist die Struktur des Programms sehr schwer zu lesen. Es scheint, dass die Position und Größe dessen, was auf dem Bildschirm angezeigt wird, entschieden wird.
Als ich nach gutem Material suchte, fand ich [kivy Programmierbuch](https: /) von Asakura Shoten, das immer verschuldet ist. /www.asakura.co.jp/books/isbn/978-4-254-12896-3/) ist raus, nicht wahr? Zum Glück habe ich es gekauft, aber es war sehr leicht zu verstehen und ich konnte endlich zum Ausgangspunkt kommen. Auch diesmal möchte ich die Diskussion mit großer Referenz fortsetzen.
Übrigens ist es eine Geschichte, bis es endlich einen Blockbruch mit der Kivy-Programmierung gibt. Bevor wir uns mit der scheinbar esoterischen KV-Sprache befassten, mussten wir zunächst die Struktur von GUI-Programmen und Widgets kennen. [Widget](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%82%B8%E3%82%A7%E3%83%83%E3%83 % 88_ (GUI)), ein berühmtes Wort, das auf Wikipedia erscheint ... Es scheint, dass das GUI-Programm durch Kombinieren von Widgets erstellt wird, aber das Kivy-Programm wird auch durch Kombinieren von Widgets mit verschiedenen Funktionen erstellt. Es wird gesagt, dass das Programm verwaltet wird, indem jedem Widget eine Eltern-Kind-Beziehung zugewiesen wird (Konfigurieren eines Widget-Baums). Mit anderen Worten, für die Programmerstellung ist es wichtig, eine hierarchische Beziehung zu jedem Teil (Widget) wie Schaltflächen und Beschriftungen zu haben und zu verstehen, wo sich die einzelnen Teile befinden. In einem komplizierten Programm scheint es besser, ein Diagramm zu zeichnen, damit die Zusammenhänge leicht zu verstehen sind.
Nachdem wir nun wissen, was zu tun ist, konfigurieren wir den Widget-Baum! Also habe ich versucht, mit der Referenz in einer Hand etwas wie das Folgende zu machen. Es ist ein Programm, das Label (Zeichenkettenbeschreibung) und Button (Schaltfläche) als untergeordnetes Widget hinzufügt, indem Boxlayout die Methode add_widget () verwendet, die die Anordnung bestimmt.
main.py
#Importieren Sie das zu verwendende Widget. Diesmal Layout von Beschriftung, Schaltfläche und Box.
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
#Eine Unterklasse der App-Klasse, die den Inhalt der App beschreibt
class testApp(App):
#Definition der Build-Methode, die ausgeführt werden soll, wenn die Hauptschleife gestartet wird
def build(self):
#Erstellung des Boxlayout-Objekts und des Button-Objekts
layout1 = BoxLayout(orientation='vertical')
button1 = Button(text='children')
label1 = Label(text='children')
#Button1 und label1 als untergeordnete Widgets von layout1 hinzugefügt
layout1.add_widget(button1)
layout1.add_widget(label1)
return layout1
#Beginn der Hauptschleife
testApp().run()
Nach dem Ausführen des obigen Vorgangs wird der folgende Bildschirm angezeigt. Da das übergeordnete Widget-Box-Layout angewiesen wird, Ausrichtung = 'vertikal' zu verwenden, werden die als untergeordnete Widgets hinzugefügten Schaltflächen und Beschriftungen vertikal ausgerichtet. Es ist auch möglich, es nebeneinander zu ändern, indem vertikal in horizontal geändert wird.
Sie können auch eine Vielzahl von Widget-Bäumen erstellen, z. B. die folgenden. Boxlayout hat Button und Boxlayout als untergeordnetes Widget (Kinder1) und Boxlayout des untergeordneten Widgets (Kinder1) hat Button und Label als untergeordnetes Widget (Kinder2).
main.py
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
class testApp(App):
def build(self):
#Erstellung des Boxlayout-Objekts und des Button-Objekts
layout1 = BoxLayout(orientation='vertical')
button1 = Button(text='children1')
layout2 = BoxLayout(orientation='horizontal')
label2 = Label(text='children2')
button2 = Button(text='children2')
#Button2 und label2 als untergeordnete Widgets von layout2 hinzugefügt
layout2.add_widget(button2)
layout2.add_widget(label2)
#Button1 und Layout2 als untergeordnete Widgets von Layout1 hinzugefügt
layout1.add_widget(button1)
layout1.add_widget(layout2)
return layout1
testApp().run()
Das Ausführungsergebnis ist wie folgt. Ich konnte eine etwas komplizierte Struktur erstellen. Ich habe das Gefühl, dass ich mich endlich am Eingang zur GUI-Erstellung eingerichtet habe.
Dieses Mal habe ich ein einfaches Programm erstellt, um die Grundstruktur des Widget-Baums für die Anzeige von Teilen auf dem Bildschirm zu verstehen. Beim nächsten Mal werde ich erklären, wie Schaltflächen und Beschriftungen im Widget-Baum platziert werden.
Kazuya Haraguchi (2018) "Praktische Python-Bibliothek Kivy-Programmierung - Multi-Tap-App mit Python -" Mikio Kubo, Asakura Shoten 254-12896-3 /) https://kivy.org/#home
Recommended Posts