Débutant en python... problème avec les fonctions

Résolu
cs_pedro Messages postés 38 Date d'inscription vendredi 27 avril 2001 Statut Membre Dernière intervention 18 mars 2008 - 18 janv. 2007 à 12:29
cs_pedro Messages postés 38 Date d'inscription vendredi 27 avril 2001 Statut Membre Dernière intervention 18 mars 2008 - 19 janv. 2007 à 10:40
Bonjour,
Je suis sur python depuis quelques heures... en plus les languages orientés objets sont un peu nouveau pour moi... J'essaie désesperement de faire une petite appli hello world. Je ne comprend pas pourquoi les définitions sont executés tout de suite. Voici le code :

# -*- coding: utf-8 -*-
from Tkinter import *

# définition des fonctions évenementielles
def but1():
    "Affiche Hello World"
    texte1.configure(text = 'Hello World')
# programme
fenetre = Tk()
texte1 = Label(fenetre, text='Bonjour !',fg='green')
texte1.pack()
boutton1 = Button(fenetre, text='Click',fg='blue', command = but1())
boutton1.pack()
boutton2 = Button(fenetre, text='quitter', fg='purple', command = fenetre.destroy)
boutton2.pack()
fenetre.mainloop()

je voudrais qu'avant de cliquer sur le boutton1 le texte1 affiche "Bonjour !" (ce qui n'est pas le cas). Et qu'il m'affiche Hello World une fois que je clique sur le boutton1. Merci beaucoup parceque là je n'y comprend rien... surement un truc conceptuel qui m'échape .

2 réponses

cs_lepecheur Messages postés 35 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 29 octobre 2007
18 janv. 2007 à 22:19
Il faut, pour éviter ça, enlever les parenthèses de but1() dans la ligne :

boutton1 = Button(fenetre, text='Click',fg='blue', command = but1() )

==>

boutton1 = Button(fenetre, text='Click',fg='blue', command = but1)

De cette manière là il ne l'appellera pas à l'initialisation... ou quelque chose dans le genre mais en tout cas c'est ça qu'il faut faire
3
cs_pedro Messages postés 38 Date d'inscription vendredi 27 avril 2001 Statut Membre Dernière intervention 18 mars 2008
19 janv. 2007 à 10:40
Et bien mille merci... Ca fonctionne impecablement.
0
Rejoignez-nous