Bonjour,
J'ai crée une fonction qui ouvre juste une fenêtre d'alerte avec un seul bouton pour sortir :
	
	| 12
 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
 32
 33
 34
 35
 36
 37
 
 | import os.path
from os import chdir        # Pour chargement des images dans autre répertoire chdir = chg de répertoire
from tkinter import *
#   Instancification
fenMsgBox =Tk()
 
def foncFenAlerte1Choix(titre, msg):
    """MsgBox d'alerte, un seul choix : fermeture"""
    #   Constantes
    NOMDOS = os.getcwd()                                    #   Nom du dossier courant
    chdir(NOMDOS + '\Images')                               #   Chg de répertoire courant pour charger les images
    PHOTO4 = PhotoImage(file='Icone30x30_Exit.png')
    chdir(NOMDOS)                                           #   Chg de répertoire courant pour revenir a la normale
    #   Création fenêtre
    fenMsgBox.title(titre)
    fenMsgBox.configure(bg="Slate Gray")
    fenMsgBox.geometry('300x360+670+400')
    #   Objets
    objMsgBox1 = Label(fenMsgBox, height=20, width=40, text=msg, bg="Gray")
 
 
    #  C'est là qu'est le soucis à cause de image=PHOTO4
    bouValidMsgBox = Button(fenMsgBox, image=PHOTO4, bg="Slate Gray", command=fenMsgBox.destroy)
 
 
 
 
    #   positionnements des objets
    objMsgBox1.pack(side=TOP)
    bouValidMsgBox.pack(side=BOTTOM)
    #   Centrage fenêtre
    from Fonctions.FoncCentreEcran import centreFenetre
    centreFenetre (fenMsgBox)
    #   Fenêtre fenMsgBox en 1er plan
    fenMsgBox.focus_set()
    #   Réception d'événements pour fenMsgBox
    fenMsgBox.mainloop() | 
 Si je l'appelle comme ceci :
	
	| 12
 3
 4
 5
 
 | msg="Mon msg :\n\nVoulez-vous vraiment supprimer cette donnée ?"
titre="monTitre"
 
from Fonctions.FoncMesAlerte1button import foncFenAlerte1Choix
foncFenAlerte1Choix(titre, msg) | 
 pas de soucis, par contre si je l'appelle de la même façon à partir d'un programme, je met juste un morceau de code car trop de lignes :
	
	| 12
 3
 4
 5
 6
 7
 
 |  
if varNom=="" or varLog=="" or varCode=="":
        titre = "ALERTE !"
        msg = "Vous n'avez rien indiqué\ndans la case NOM, LOGGING\nou dans la case CODE !"
        from Fonctions.FoncMesAlerte1button import foncFenAlerte1Choix
        foncFenAlerte1Choix (titre, msg)
        return | 
 Là j'ai ce msg d'erreur:
_tkinter.TclError: image "pyimage21" doesn't exist
J'ai trouvé quelques explications sur le net, cela viendrais de PhotoImage et en effet si je retire juste l'appel à l'image :
Là c'est OK :
	
	    bouValidMsgBox = Button(fenMsgBox, bg="Slate Gray", command=fenMsgBox.destroy)
 Là non :
	
	    bouValidMsgBox = Button(fenMsgBox, image=PHOTO4, bg="Slate Gray", command=fenMsgBox.destroy)
 Je comprends pas d'ou viens le problème !
						
					
Partager