TKinter-appel au constructeur
Je découvre un peu chaque jour Python3
Voicion problème à la lecture d'explication en ligne sur Tkinter j'ai creer le petit test
Code:
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
| # coding: utf-8
import tkinter as tk
from distutils import command
class lafenetre(tk.Tk): #curieusement sans héritage cela fonctionne
def __init__(self):
tk.Tk.__init__(self) # appel du constructeur de la class mere TK
mafenete = tk.Tk()
mafenete.geometry("800x400+100+50") # taille de la fenetre et position h100 - l50
mafenete.grid()
mafenete.title("Ma fenetre") # titre de la fenetre
mafenete.premierBouton = tk.Button(mafenete, text ='Bonjour', command = execpremierBouton ) # definie une bouton simple
mafenete.secondBouton = tk.Button(mafenete, text ='OK',command = execsecondBouton )
mafenete.premierBouton.grid()
mafenete.secondBouton.grid()
mafenete.mainloop() # surveille les interaction de la fenetre
def execpremierBouton(mafenete):
print("premier Bouton")
mafenete.quit()
def execsecondBouton(mafenete):
print("OK")
lancer = lafenetre() |
on me dit que ma class qui appel tkinter doit faire référence au constructeur .
ceci étant même sans on obtient l'affichage de l'écran
class lafenetre(): #curieusement sans héritage cela fonctionne
def __init__(self):
on me dit que l'on doit déclarer l'appel au constructeur
Code:
tk.Tk.__init__(self) # appel du constructeur de la class mere TK
si je mets cette ligne de code 2 fenêtres "tkinter" s'ouvre l'une vide l'autre correpond à ma fenetre :aie:
Pourquoi ?
peut être que le code logiquement devraitêtre ceci?
Code:
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
| # coding: utf-8
import tkinter as tk
class lafenetre(tk.Tk): #curieusement sans héritage cela fonctionne
def __init__(self):
#tk.Tk.__init__(self) # appel du constructeur de la class mere TK
self = tk.Tk()
self.geometry("800x400+100+50") # taille de la fenetre et position h100 - l50
self.grid()
self.title("Ma fenetre") # titre de la fenetre
premierBouton = tk.Button(self, text ='Bonjour', command = execpremierBouton ) # definie une bouton simple
secondBouton = tk.Button(self, text ='OK',command = execsecondBouton )
premierBouton.grid(column = 0 ,row = 0)
secondBouton.grid(column = 1 ,row = 0)
self.mainloop() # surveille les interaction de la fenetre
def execpremierBouton() :
print("premier Bouton")
def execsecondBouton():
print("OK")
lancer = lafenetre() |