Cela fait environ six mois que j'ai vraiment commencé à programmer, mais quand je pensais à créer quelque chose qui ressemblait à une application, un pigeon que j'ai rencontré sur Twitter m'a recommandé kivy, alors j'ai commencé avec l'élan. J'espère que l'explication du processus de production et du contenu permettra à d'autres personnes de se lancer plus facilement dans le développement d'applications avec kivy.
kivy est un Python qui vous permet de développer des applications multi-tap. Une bibliothèque open source, les applications créées avec kivy peuvent être exécutées sur des appareils iOS / Android, y compris des environnements PC tels que macOS, Windows et Linux. De plus, kivy peut également utiliser son propre langage appelé langage KV avec Python, qui est une fonctionnalité qui rend le programme multicouche. Il semble qu'il soit difficile de comprendre ce langage KV et qu'il ne supporte pas très bien le japonais.
Eh bien, même si vous ne lisez que le plan, je ne sais pas si vous ne l'essayez pas pour le moment! Alors, installons kivy immédiatement et démarrons kivy en créant le tutoriel Pong Game. ~~~. J'ai commencé avec une sensation de détente, mais j'ai pu faire quelque chose comme ça avec du copier-coller, mais je n'ai aucune idée de ce qui se passe dans le programme. Je suis un amateur, donc je ne comprends pas vraiment ce qu'est Widget, et même si je vais à l'explication détaillée, je ne peux pas penser à tous les mots que je ne connais pas. De plus, en raison du langage KV mentionné ci-dessus, la structure du programme semble très difficile à lire. Il semble que la position et la taille de ce qui est affiché à l'écran soient décidées ...
Donc, quand je cherchais du bon matériel, de Asakura Shoten, qui est toujours redevable, [livre de programmation kivy](https: / /www.asakura.co.jp/books/isbn/978-4-254-12896-3/) est sorti, n'est-ce pas? Heureusement, je l'ai acheté, mais c'était très facile à comprendre et j'ai finalement pu arriver au point de départ. Cette fois également, je voudrais poursuivre la discussion avec une grande référence.
Au fait, c'est une histoire jusqu'à ce que finalement une rupture de bloc avec la programmation kivy. Avant d'entrer dans le langage KV apparemment ésotérique, nous devions connaître la structure des programmes et widgets GUI en premier lieu. [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)), un mot célèbre qui apparaît sur Wikipédia ... Il semble que le programme GUI soit fait en combinant des widgets, mais le programme kivy est également fait en combinant des widgets avec diverses fonctions. On dit que le programme est géré en donnant à chaque Widget une relation parent-enfant (configuration d'une arborescence de Widget). En d'autres termes, il est important pour la création de programme d'avoir une relation hiérarchique avec chaque partie (Widget) comme les boutons et les étiquettes, et de comprendre où se trouve chaque partie. Dans un programme compliqué, il semble préférable de dessiner un diagramme pour que les relations soient faciles à comprendre.
Maintenant que nous savons quoi faire, configurons l'arborescence des widgets! Donc, j'ai essayé de faire quelque chose comme ce qui suit avec la référence dans une main. C'est un programme qui ajoute Label (description de chaîne de caractères) et Button (bouton) comme widget enfant en utilisant la méthode add_widget () à Boxlayout qui détermine la disposition.
main.py
#Importez le widget à utiliser. Cette fois, l'étiquette, le bouton et la disposition de la boîte.
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
#Une sous-classe de la classe App qui décrit le contenu de l'application
class testApp(App):
#Définition de la méthode de construction à exécuter au démarrage de la boucle principale
def build(self):
#Création de l'objet Boxlayout et de l'objet Button
layout1 = BoxLayout(orientation='vertical')
button1 = Button(text='children')
label1 = Label(text='children')
#Ajout de button1 et label1 en tant que widgets enfants de layout1
layout1.add_widget(button1)
layout1.add_widget(label1)
return layout1
#Début de la boucle principale
testApp().run()
Après avoir exécuté ce qui précède, l'écran suivant s'affiche. Étant donné que la disposition de la boîte de widgets parent a pour instruction d'orientation = 'vertical', les boutons et les étiquettes ajoutés en tant que widgets enfants sont alignés verticalement. Il est également possible de le changer côte à côte en changeant verticalement en horizontal.
Vous pouvez également créer une grande variété d'arborescences de widgets telles que les suivantes. Boxlayout a Button et Boxlayout comme widget enfant (enfants1), et Boxlayout du widget enfant (enfants1) a Button et Label comme widget enfant (enfants2).
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):
#Création de l'objet Boxlayout et de l'objet Button
layout1 = BoxLayout(orientation='vertical')
button1 = Button(text='children1')
layout2 = BoxLayout(orientation='horizontal')
label2 = Label(text='children2')
button2 = Button(text='children2')
#Ajout de button2 et label2 comme widgets enfants de layout2
layout2.add_widget(button2)
layout2.add_widget(label2)
#Ajout de button1 et layout2 en tant que widgets enfants de layout1
layout1.add_widget(button1)
layout1.add_widget(layout2)
return layout1
testApp().run()
Le résultat de l'exécution est le suivant. J'ai pu créer une structure un peu compliquée. J'ai l'impression de m'être enfin installé à l'entrée de la création de l'interface graphique.
Cette fois, j'ai créé un programme simple pour comprendre la structure de base de l'arborescence des widgets pour afficher les pièces à l'écran. La prochaine fois, j'expliquerai comment créer des liens entre les boutons et les étiquettes placés dans l'arborescence des widgets.
Kazuya Haraguchi (2018) "Programmation pratique de la bibliothèque Python Kivy -Application multi-tap réalisée avec Python-" Mikio Kubo, Asakura Shoten 254-12896-3 /) https://kivy.org/#home
Recommended Posts