IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

Rafraichir un text label dans kivy


Sujet :

GUI Python

  1. #1
    Candidat au Club
    Homme Profil pro
    demandeur d'empli
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : demandeur d'empli

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Rafraichir un text label dans kivy
    Bonjour!!
    Je tiens a signaler que j'apprends tout seul a programmer et que je suis plus si jeune(snif) et donc des fois je percute pas ou j'ai du mal!!!
    Je suis en train de bidouiller un compte a rebours avec python et kivy.
    tout fonctionne dans le terminal mais mon interface ne rafraichit pas le texte du label à savoir le décompte...
    voila le code:
    mon fichier .py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    from kivy.app import App
    from kivy.uix.boxlayout import BoxLayout
    import time
    from playsound import playsound
     
    class MyLayout(BoxLayout):
        def update_time(self, *args):
            self.ids.label.text = str(self.ids.input.text)
     
     
        def decompte(self, *args):
            t = int(self.ids.label.text)
            while t:
                time.sleep(1)
                t -= 1
                print(t)
                self.ids.label.text = str(t)
                if t == 3 or t == 2 or t == 1:
                    playsound("ressources/bip.wav")
                elif t == 0:
                    playsound("ressources/fin.wav")
            print("Over")
            self.ids.label.text = "OVER"
     
     
    class CountdApp(App):
        pass
     
     
    CountdApp().run()
    et mon fichier .kv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    MyLayout:
     
    <MyLayout>:
        orientation: "vertical"
        BoxLayout:
            BoxLayout:
                orientation: "vertical"
                TextInput:
                    id: input
                    font_size: 100
                    halign: "center"
                BoxLayout:
                    Button:
                        text: "set"
                        font_size: 40
                        on_press: root.update_time();
                    Button:
                        id: button
                        text: "GO"
                        font_size: 40
                        on_press: root.decompte()
            Label:
                id: label
                text: ""
                font_size: 100
    Je ne comprends pas pourquoi à la fin du décompte le text label se met à jour en écrivant "over" et que rien ne sa passe pendant le décompte...
    Si quelqu'un a une piste à me donner , je suis preneur , là je suis dans le noir...
    merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 435
    Points : 37 020
    Points
    37 020
    Par défaut
    Salut,
    Citation Envoyé par mathloss Voir le message
    Si quelqu'un a une piste à me donner , je suis preneur , là je suis dans le noir...
    Comme avec tous les GUI, on ne met ni boucle, ni time.sleep dans les callbacks car le rafraichissement de l'écran se fait à la sortie.
    Et si vous voulez apprendre à programmer, çà serait mieux de commencer avec un GUI beaucoup moins compliqué pour lesquels il existe des tutos pour débutants.

    - W

  3. #3
    Candidat au Club
    Homme Profil pro
    demandeur d'empli
    Inscrit en
    Juin 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : demandeur d'empli

    Informations forums :
    Inscription : Juin 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    ok donc je comprends pourquoi ça coince.
    Merci!

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/09/2010, 16h54
  2. [SWT] Ecrire un texte long dans un label
    Par tweety dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 27/06/2007, 16h08
  3. Réponses: 3
    Dernier message: 15/11/2006, 14h46
  4. Formats du texte différents dans un label
    Par sunvialley dans le forum IHM
    Réponses: 2
    Dernier message: 28/06/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo