======Kivy: Exemples simples pour apprendre====== **{{tagpage>kivy|Toutes les pages Kivy}}** **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fkivy_exemples_simples_pour_apprendre|English Version]]** **[[les_pages_kivy_en_details|Les pages Kivy en détails]]** **Des exemples pour apprendre et tester.** ===== Les fichiers sur Github ===== **[[https://github.com/sergeLabo/kivylabomedia|kivilabomedia sur Github]]** Cloner le git ou télécharger le zip. Ouvrir un terminal dans le dossier. python3 je_teste.py Dans geany, ouvrir tous les fichiers et Excécuter les .py ===== Comprendre une application kivy avec des exemples simples ===== Le fichier principal doit obligatoirement s’appeler main.py pour buildozer, mais si dans les exemples il y a pléthore de main.py, l’élève débutant ne comprendra rien. Donc on fait simple et clair: **le fichier principal** s'appelle **exemple_simple.py**, à lancer avec: python3 exemple_simple.py ==== Mélange FloatLayout GridLayout BoxLayout ==== {{media_13:tuto31.png?300|Tuto31.png Tuto31.png}} **melange.py** #! /usr/bin/env python3 # -*- coding: utf-8 -*- import kivy kivy.require('1.8.0') from kivy.app import App from kivy.core.window import Window # Set window size or not with your screen resolution Window.size = (1120, 630) class MelangeApp(App): '''L'application principale.''' def build(FloatLayout): '''Melange.kv commence par "GridLayout". FloatLayout n'a pas d'arguments. ''' pass if __name__ == '__main__': MelangeApp().run() **melange.kv** #:kivy 1.8.0 GridLayout: spacing: 10 padding: 10 cols: 2 rows: 2 Button: text: "bouton 1" Button: text: "bouton 2" Button: text: "bouton 3" BoxLayout: spacing: 10 padding: 10 Button: size_hint_y: 0.5 text: "bouton 4" Button: size_hint_y: 0.4 text: "bouton 5" Button: size_hint_y: 0.3 text: "bouton 6" Button: text: "bouton 7" ==== Le Hello World modifié ==== Le Hello World original comporte des notions avancées, alors que cet exemple doit être vu par un codeur qui voit du code kivy pour la première fois. Quelle mauvaise pédagogie ! {{media_13:tuto41.png?300|fig:Tuto41.png}} {{media_13:tuto42.png?300|fig:Tuto42.png}} Montre les liens hello.py et hello.kv pour une action et des variables. **hello.py** #! /usr/bin/env python3 # -*- coding: utf-8 -*- import kivy kivy.require('1.8.0') from kivy.app import App from kivy.uix.floatlayout import FloatLayout from kivy.properties import ObjectProperty, StringProperty from kivy.core.window import Window # Set window size or not with your screen resolution Window.size = (1120, 630) class Hello(FloatLayout): '''class des actions.''' # Text du bouton info = StringProperty() # Text du label label_wid = ObjectProperty() def do_action(self): '''Si j'appuie, je fais ça.''' # Modifie le texte du bouton défini dans le build de HelloApp self.info = " : Non, c'est fini" # Modification du texte avec label_wid défini au début de : # et utilisé pour définir le texte du Label self.label_wid.text = "J'ai appuyé" class HelloApp(App): '''Lit Hello.kv parce que la classe s'appelle HelloApp''' def build(self): return Hello(info=" ici !") if __name__ == "__main__": HelloApp().run() **hello.kv** #:kivy 1.8.0 : label_wid: my_custom_label BoxLayout: orientation: "vertical" padding: 200 Button: text: "Appuyer" + root.info on_press: root.do_action() Label: id: my_custom_label text: "J'attends" {{tag> kivy python sb }}