Partage
  • Partager sur Facebook
  • Partager sur Twitter

fenetre tkinter classe

    3 mars 2021 à 9:34:55

    Bonjour à tous,

    je débute avec tkinter et j'ai du mal à ,afficher une fenetre avec une classe.

    class Menu(tk.Tk):
        
        def __init__(self):
            self.menu=tk.Tk.__init__(self)
            self.bouton1=tk.Button(self,text="Bataille navale",image=tk.PhotoImage(file="bateau-touche-coule.png"),command=lambda:self.choix(1))
            self.bouton2=tk.Button(self,text="Jeu de tanks",image=tk.PhotoImage(file="tank.png"),command=lambda:self.choix(2))
            self.crer_widget()
            self.chx=None
            
        def crer_widget(self):
            self.bouton1.grid(row=0,column=0)
            self.bouton2.grid(row=0,column=1 )

    je l'initialise ensuite avec menu=Menu() puis menu.mainloop()

    lorsqu j'exécute ça m'affiche une fenetre blanche.

    Pourriez vous m'aider?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      3 mars 2021 à 11:10:36

      Bonjour,

      Moi, j'ai fait comme ça et ca marche bien:

      # -*- coding:Latin-1 -*-
      
      from tkinter import *
      
      class Menu(Tk):
           
          def __init__(self):
              self.menu=Tk.__init__(self)
              self.geometry('500x500+250+100')
              self.bouton1=Button(self,text="Bataille navale",command=lambda:self.choix(1))
              self.bouton1.grid(row=0,column=0)
              self.bouton2=Button(self,text="Jeu de tanks",command=lambda:self.choix(2))
              self.bouton2.grid(row=0,column=1 )
              self.chx=None
      
      menu = Menu()
      menu.mainloop()



      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        3 mars 2021 à 11:17:30

        ThéophileJoin-Lambert a écrit:

        Bonjour à tous,

        je débute avec tkinter et j'ai du mal à ,afficher une fenetre avec une classe.

        class Menu(tk.Tk):
            
            def __init__(self):
                self.menu=tk.Tk.__init__(self)
                self.bouton1=tk.Button(self,text="Bataille navale",image=tk.PhotoImage(file="bateau-touche-coule.png"),command=lambda:self.choix(1))
                self.bouton2=tk.Button(self,text="Jeu de tanks",image=tk.PhotoImage(file="tank.png"),command=lambda:self.choix(2))
                self.crer_widget()
                self.chx=None
                
            def crer_widget(self):
                self.bouton1.grid(row=0,column=0)
                self.bouton2.grid(row=0,column=1 )

        je l'initialise ensuite avec menu=Menu() puis menu.mainloop()

        lorsqu j'exécute ça m'affiche une fenetre blanche.

        Pourriez vous m'aider?

        Merci


        C'est mormal dans ce cas, ton image est supprimée par le "ramasse miette" (garbage collector) avant même d'etre affichée.

        Pour éviter ça :

        self.img_but1 = tk.PhotoImage(file="bateau-touche-coule.png")
        self.bouton1=tk.Button(self,text="Bataille navale",image=self.img_but1,command=lambda:self.choix(1))



        • Partager sur Facebook
        • Partager sur Twitter

        fenetre tkinter classe

        × 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