kivy_les_fichiers_kv
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
kivy_les_fichiers_kv [2020/01/04 09:49] – [Le langage kivy dans les fichiers *.kv] serge | kivy_les_fichiers_kv [2020/02/16 08:28] – ↷ Liens modifiés en raison d'un déplacement. serge | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
**{{tagpage> | **{{tagpage> | ||
**[[http:// | **[[http:// | ||
+ | </ | ||
+ | <WRAP center round box 40% centeralign> | ||
+ | **[[les_pages_kivy_en_details|Les pages Kivy en détails]]** | ||
+ | </ | ||
+ | <WRAP center round box 60% centeralign> | ||
+ | {{ :: | ||
+ | Avec des commentaires ! | ||
</ | </ | ||
===== Le langage kivy dans les fichiers *.kv ===== | ===== Le langage kivy dans les fichiers *.kv ===== | ||
Ligne 9: | Ligne 16: | ||
* Ce qui suit est une adaptation de kivy-vision.fr qui n'est plus en ligne | * Ce qui suit est une adaptation de kivy-vision.fr qui n'est plus en ligne | ||
- | ===== kv ===== | + | ===== Ressources sur les fichiers |
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | ==== Nommage pour le fichier kv ==== | + | ===== Nommage pour le fichier kv ===== |
* [[http:// | * [[http:// | ||
- | === Exemple === | + | ==== Exemple |
**app_with_kv.py** | **app_with_kv.py** | ||
Ligne 55: | Ligne 62: | ||
Si vous ne respectez pas la convention, vous n' | Si vous ne respectez pas la convention, vous n' | ||
- | ==== Comment adapter un main.py avec Builder.load_string() pour un fichier *.kv ==== | + | ===== Comment adapter un main.py avec Builder.load_string() pour un fichier *.kv ===== |
Permet de comprendre comment les éléments du fichier kv sont lu! | Permet de comprendre comment les éléments du fichier kv sont lu! | ||
Ligne 118: | Ligne 125: | ||
text: "bla bla !" | text: "bla bla !" | ||
</ | </ | ||
- | ==== Explications sur les fichiers *.kv ==== | + | ===== Pricipes des fichiers *.kv ===== |
=== Règles === | === Règles === | ||
Ligne 132: | Ligne 139: | ||
Des templates seront utilisés pour construire des morceaux de votre application, | Des templates seront utilisés pour construire des morceaux de votre application, | ||
- | ==== Syntaxe d'un fichier kv ==== | + | ===== Syntaxe d'un fichier kv ===== |
Le fichier peut contenir des défitions de règles, un widget racine et des templates: | Le fichier peut contenir des défitions de règles, un widget racine et des templates: | ||
Ligne 182: | Ligne 189: | ||
Lorsque vous indiquez la valeur d'une propriété, | Lorsque vous indiquez la valeur d'une propriété, | ||
- | ==== self ==== | + | === self === |
Le mot clé self fait référence à l' | Le mot clé self fait référence à l' | ||
Ligne 191: | Ligne 198: | ||
text: "My state is {}" | text: "My state is {}" | ||
</ | </ | ||
- | ==== root ==== | + | === root === |
Ce mot clé n'est disponible que dans la définition des règles, et représente le widget racine de la règle (la première instance de la règle). Ce n'est pas le widget racine de tous les widgets. | Ce mot clé n'est disponible que dans la définition des règles, et représente le widget racine de la règle (la première instance de la règle). Ce n'est pas le widget racine de tous les widgets. | ||
Ligne 225: | Ligne 232: | ||
return root | return root | ||
</ | </ | ||
- | ==== app ==== | + | === app === |
Ce mot clé se réferre toujours à l' | Ce mot clé se réferre toujours à l' | ||
Ligne 236: | Ligne 243: | ||
Avec TestApp(App) retourne testapp | Avec TestApp(App) retourne testapp | ||
- | ==== args ==== | + | === args === |
Ce mot clé est disponible dans les on_action callbacks. Il fait référence aux arguments passés au callback: | Ce mot clé est disponible dans les on_action callbacks. Il fait référence aux arguments passés au callback: | ||
Ligne 255: | Ligne 262: | ||
</ | </ | ||
Attention, l'id ne sera pas disponible dans l' | Attention, l'id ne sera pas disponible dans l' | ||
+ | |||
+ | ===Exemple de récupération d'une propriété d'une autre class=== | ||
+ | Extrait de [[smartcitizen|Kivy: | ||
+ | {{ :: | ||
+ | Cet exemple pourrait être un excercice dans une interro surprise! On applique bêtement le cours ! "Mais, M' | ||
+ | * app: Ce mot clé se réferre toujours à l' | ||
+ | * root: Ce mot clé n'est disponible que dans la définition des règles, et représente le widget racine de la règle, soit SmartCitizen | ||
+ | * ids: [[https:// | ||
+ | * get_screen(' | ||
+ | * owner_detail: | ||
===== Lien entre valeurs et propriétés ===== | ===== Lien entre valeurs et propriétés ===== | ||
- | Lorsque vous utilisez le langage Kivy, vous aurez remarqué que nous effectuons un certains travail en tâche de fond pour faire que les choses se déroulent correctement. Vous devriez savoir que les propriétés | + | Lorsque vous utilisez le langage Kivy, vous aurez remarqué que nous effectuons un certains travail en tâche de fond pour faire que les choses se déroulent correctement. Vous devriez savoir que les propriétés |
Le langage Kivy détecte les propriétés dans votre expression value et créé des callbacks pour mettre à jour automatiquement la propriété en utilisant votre expression lorsqu' | Le langage Kivy détecte les propriétés dans votre expression value et créé des callbacks pour mettre à jour automatiquement la propriété en utilisant votre expression lorsqu' | ||
Ligne 274: | Ligne 291: | ||
<code python> | <code python> | ||
Button: | Button: | ||
- | text: 'Plop world' if self.state == ' | + | text: ' |
</ | </ | ||
Le texte du bouton change en fonction de l' | Le texte du bouton change en fonction de l' | ||
Ligne 405: | Ligne 422: | ||
</ | </ | ||
- | {{tag> | + | =====Définir l' |
+ | |||
+ | <code python> | ||
+ | from kivy.app import App | ||
+ | from kivy.lang import Builder | ||
+ | |||
+ | kv = ''' | ||
+ | < | ||
+ | step: 1 | ||
+ | Label: | ||
+ | text: ' | ||
+ | size: self.texture_size | ||
+ | top: root.center_y - sp(20) | ||
+ | center_x: root.value_pos[0] | ||
+ | ''' | ||
+ | |||
+ | class ShortenText(App): | ||
+ | def build(self): | ||
+ | return Builder.load_string(kv) | ||
+ | |||
+ | ShortenText().run() | ||
+ | </ | ||
+ | équivaut à | ||
+ | <code python> | ||
+ | from kivy.app import App | ||
+ | from kivy.lang import Builder | ||
+ | from kivy.uix.slider import Slider | ||
+ | |||
+ | kv = ''' | ||
+ | < | ||
+ | step: 1 | ||
+ | Label: | ||
+ | text: ' | ||
+ | size: self.texture_size | ||
+ | top: root.center_y - sp(20) | ||
+ | center_x: root.value_pos[0] | ||
+ | ''' | ||
+ | |||
+ | class LabeledSlider(Slider): | ||
+ | pass | ||
+ | |||
+ | class ShortenText(App): | ||
+ | def build(self): | ||
+ | return Builder.load_string(kv) | ||
+ | |||
+ | ShortenText().run() | ||
+ | </ | ||
+ | {{tag> |
kivy_les_fichiers_kv.txt · Dernière modification : 2020/10/29 13:50 de serge