Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pour donner une fonction a un bouton

ouvrir une fentre deja existente

    16 février 2017 à 11:47:15

    Bonjour, nous aussi nous sommes perdus. En effet dans le cadre de notre projet pour le bac, nous avons besoin d'aide.

    La cause de notre questionnement est la suivante: comment peut-on sur python ouvrir une nouvelle fenêtre déjà définie en cliquant sur un bouton?

    Merci d'avance pour votre réponse.

    Cordialement.

    • Partager sur Facebook
    • Partager sur Twitter
      16 février 2017 à 11:53:04

      Quelle fenêtre ? définie comment ?

      • Partager sur Facebook
      • Partager sur Twitter
        16 février 2017 à 12:02:32

        Nous avons créé 2 fenêtres et nous souhaitons sur la première fenêtre créer un bouton qui nous emmène sur la deuxième fenêtre.

        • Partager sur Facebook
        • Partager sur Twitter
          16 février 2017 à 12:17:36

          TKinter

          Nous avons résolu notre problème. Voila notre programme. Merci :)

          from tkinter import*
          fenetre=Tk()
          fenetre.geometry("1100x700")
          fenetre.title("Menu")
          montexte=Label(fenetre, text='Le lycée Maudit')
          montexte.place(x=500 , y=0)
          jouer=Button(fenetre, text='Jouer')
          jouer.place(x=525 , y=125)

          def kl():
              fenetre=Tk()
              fenetre.title("Règles")
              fenetre.geometry("1100x700")
              montexte=Label(fenetre, text='Règles du jeu')
              montexte.place(x=500 , y=0)
              montexte.config(font=('Stencil',16,'bold'))
              monbouton=Button(fenetre,text='Retour', command=fenetre.destroy)
              monbouton.place(x=10 , y=650)
              monbouton.config(font=('Georgia',14,'bold'))
            


          regle=Button(fenetre, text='Règles', command= kl )
          regle.place(x=525 , y=225)

          quitter=Button(fenetre, text='Quitter', command=fenetre.destroy)
          quitter.place(x=525 , y=325)


          fenetre.mainloop()

          • Partager sur Facebook
          • Partager sur Twitter
            16 février 2017 à 12:38:14

            ClébiSari a écrit:

            TKinter

            Nous avons résolu notre problème.

            Super ; cependant quelques remarques :

            Il vaut mieux éviter les imports génériques : from tkinter import * 

            Soit on fait import <module>, ce qui oblige à préfixer les éléments du module par le nom du module ; exemple :

            import tkinter
            
            fenetre = tkinter.Tk()
            bouton = tkinter.Button(...)

            Ou utiliser un alias pour avoir un préfixe plus court :

            import tkinter as tk
            
            fenetre = tk.Tk()
            bouton= tk.Button()

            Pour créer une ou plusieurs sous-fenêtres au sein d'un même programme il vaut mieux utiliser des instances de tkinter.Toplevel()

            http://effbot.org/tkinterbook/toplevel.htm

            Ensuite il faut aérer le code, et ajouter des espaces autour du signe = lors d'une affectation :

            # non :
            fenetre=tk.Tk()
            
            # oui :
            fenetre = tk.Tk()
            

            Par contre dans les attributs d'un widget par exemple on ne met pas d'espace :

            canvas = tk.Canvas(fenetre, width=400, height=300)


            Les noms de variable doivent être explicites, mais les noms des fonctions aussi ; kl n'est pas un nom explicite

            Enfin, rien d'obligatoire mais une bonne habitude quand on fait des GUI et de nommer les widgets d'après leur type, par exemple :

            bt_quit = tk.Button(...)
            
            lbl_name = tk.Label(...)
            
            lbx_users = tk.Listbox(...)

            Ça permet de différencier un widget d'une autre variable, ça améliore la lisibilité.



            • Partager sur Facebook
            • Partager sur Twitter

            Problème pour donner une fonction a un bouton

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown