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

Python Discussion :

probl�me de red�marrage de la fen�tre tkinter [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Coll�gien
    Inscrit en
    Ao�t 2024
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comt�)

    Informations professionnelles :
    Activit� : Coll�gien

    Informations forums :
    Inscription : Ao�t 2024
    Messages : 13
    Par d�faut probl�me de red�marrage de la fen�tre tkinter
    Bonjour, je voulais vous demander le cause de mon probl�me, lorsque je ferme la fen�tre tkinter, et que je r�ex�cute le programme, voici ce qu'il m'indique :

    Code python : 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
    Traceback (most recent call last):
    File "C:/Users/Dell/Desktop/python/test 3.py", line 6, in <module>
    File "C:\Users\Dell\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2726, in __init__
    Widget.__init__(self, master, 'button', cnf, kw)
    File "C:\Users\Dell\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2648, in __init__
    self.tk.call(
    can't invoke "button" command: application has been destroyed
     
     
    programme:
    import tkinter as tk
    fen = tk.Tk()
    loop1 = 1
    while loop1 == 1:
     
        b1 = tk.Button(fen, text=("forme 1"), width=50)
     
        b1.pack(padx=10, pady=10)
        compteclick = 0
     
        def quandclické(event):
            global compteclick
            compteclick = compteclick + 1
            if compteclick ==1:
                #action
                fen.destroy()
     
     
        b1.bind("<ButtonRelease-1>", quandclické)
        fen.mainloop()
        #action



    merci d'avance.

  2. #2
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par d�faut
    Salut,

    D�s qu'on ex�cute l'instruction fen.destroy(), on aura "application has been destroyed" d�s qu'on essaie de modifier un widget.
    Quelque part, le code fait bien ce que vous avez demand�.
    Maintenant, si c'est n'importe quoi... trouvez un tuto. pour apprenez les bases de la programmation avec tkinter.
    Le Swinnen est tr�s bien (pour d�buter).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 848
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 848
    Billets dans le blog
    1
    Par d�faut
    Bonjour
    Citation Envoy� par TristanTh Voir le message
    Bonjour, je voulais vous demander le cause de mon probl�me, lorsque je ferme la fen�tre tkinter, et que je r�ex�cute le programme
    D�j� tu ne r�ex�cutes pas ton programme, tu ex�cutes ton programme. Et ton programme, durant cette simple ex�cution unique, effectue une boucle. Et la boucle faisant appel � une fen�tre d�truite � l'it�ration pr�c�dente... (d�j� je ne vois pas ce que tu esp�rais obtenir � la place)

    Maintenant les d�fauts de ton code :
    • on ne d�finit pas une fonction dans une boucle (elle est r��crite � chaque it�ration !!!). D'ailleurs on d�finit traditionnellement les fonctions avant le code et pas au milieu du code (c'est plus lisible)
    • on �vite les noms avec accent. Ce n'est pas un souci pour Python mais si on part dans les noms exotiques, on aura un jour des variables avec des noms style 野菜 ou ڜ. Donc on en reste aux caract�res simples. Les verbes anglais sont pas mal pour �a
    • une boucle qui ne change pas sa variable de test est une boucle infinie. De l�, la variable ne sert plus � rien


    Ci-dessous le m�me code (ne sachant pas ce que tu veux faire je ne peux que r��crire la m�me action) mais �crit plus dans la norme Python...
    Code python : 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
    def clicked(event):
    	global compteclick
    	compteclick = compteclick + 1
    	if compteclick ==1:
    		#action
    		fen.destroy()
     
    import tkinter as tk
    fen = tk.Tk()
    while True:
     
    	b1 = tk.Button(fen, text=("forme 1"), width=50)
     
    	b1.pack(padx=10, pady=10)
    	compteclick = 0
     
    	b1.bind("<ButtonRelease-1>", clicked)
    	fen.mainloop()
    	#action
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par d�faut
    Citation Envoy� par Sve@r Voir le message
    Ci-dessous le m�me code (ne sachant pas ce que tu veux faire je ne peux que r��crire la m�me action) mais �crit plus dans la norme Python...
    Un code qui fait la m�me chose pourrait se r�sumer �:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    import tkinter as tk
     
    root = tk.Tk()
    tk.Button(root, text='forme 1', command=root.quit).pack()
    tk.mainloop()
    print("action")
    On affiche bien "action" d�s le premier click sur le button en faisant disparaitre la fen�tre... et plus l'erreur "application has been destroyed" (m�me lorsqu'on "ferme" la fen�tre).

    Pour ce qui est de deviner ce que le PO a cherch� � faire... on peut bien s�r imaginer mais c'est � priori un grand gar�on qui devrait pouvoir s'exprimer...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Coll�gien
    Inscrit en
    Ao�t 2024
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comt�)

    Informations professionnelles :
    Activit� : Coll�gien

    Informations forums :
    Inscription : Ao�t 2024
    Messages : 13
    Par d�faut
    Merci �norm�ment pour vos r�ponse, elle m'on beaucoup aid�, je vous suis tr�s reconnaisant.
    Aurevoir

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [MFC] Priorit� a une fentres CDialog
    Par Coubiac dans le forum MFC
    R�ponses: 3
    Dernier message: 28/02/2005, 13h04
  2. [Tkinter] Binder le bouton de fermeture d'un Tk()
    Par jc_isd dans le forum Tkinter
    R�ponses: 2
    Dernier message: 09/02/2005, 16h11
  3. Fermer la fentre sans quitter le programme?
    Par tomburn dans le forum OpenGL
    R�ponses: 13
    Dernier message: 06/12/2004, 17h02
  4. R�ponses: 3
    Dernier message: 26/10/2004, 07h31
  5. R�ponses: 3
    Dernier message: 16/08/2004, 10h57

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