Outils pour utilisateurs

Outils du site


dev:python:kivy:app1:helloworld2

Python - Kivy : Hello World et un peu plus

Le programme personne

  • Crée un dossier personne ;
  • Dans ce dossier crée un fichier main.py avec le contenu suivant :
main.py
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
 
class Saisie(GridLayout):
    def __init__(self, **kwargs):
        super(Saisie, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='Nom'))
        self.nom = TextInput(multiline=False)
        self.add_widget(self.nom)
        self.add_widget(Label(text='prénom'))
        self.prenom = TextInput(multiline=False)
        self.add_widget(self.prenom)
 
class Personne(App):
    def build(self):
        return Saisie()
 
if __name__ == '__main__':
    Personne().run()

Exécution du programme

  • Lance l'exécution du fichier main.py depuis Spyder ou en ligne de commande :
python main.py
  • un fenêtre s'ouvre et contient un bouton cliquable sur lequel est inscrit “Hello World !” qui couvre toute la fenêtre

Explication

Ta fenêtre va contenir :

  • 2 champs de saisie et deux labels pour indiquer ce qu'il faut saisir.
  • une grille de 2 colonnes pour permettre de placer correctement les différents widgets

Quelques explications :

  • from kivy.uix.gridlayout import GridLayout
    • importation d'un Widget GridLayout qui sera la classe de base du widget principal Saisie :
    • class Saisie(GridLayout):
  • super(Saisie, self).init(**kwargs) :
    • la fonction (méthode) spéciale init permet de construire l'objet Saisie en modifiant (surchargeant) la classe de base GridLayout afin d'ajouter les widgets et leur définir leur comportement
def __init__(self, **kwargs):
   super(Saisie, self).__init__(**kwargs)

Les liens Kivy pour connaître les propriétés de ces trois objets :

Prendre en compte la saisie du prénom

  • ajout d'un bouton
  • ajout d'un label pour afficher le nom avec le prénom
personne2.py
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
 
class Saisie(GridLayout):
 
 
    def __init__(self, **kwargs):
        super(Saisie, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='Nom'))
        self.nom = TextInput(multiline=False)
        self.add_widget(self.nom)
        self.add_widget(Label(text='prénom'))
        self.prenom = TextInput(multiline=False)
        self.add_widget(self.prenom)
        self.bouton = Button(text='Afficher')
        self.add_widget(self.bouton)
        self.bouton.bind(on_press=self.afficher)
        self.nomprenom = Label()
        self.add_widget(self.nomprenom)
 
    def afficher(self,instance):
        self.nomprenom.text = self.nom.text + " " + self.prenom.text
 
class Personne(App):
 
    def build(self):
        return Saisie()
 
 
if __name__ == '__main__':
    Personne().run()

Retour au menu de ma première application

dev/python/kivy/app1/helloworld2.txt · Dernière modification: 2017/05/04 14:21 (modification externe)