Bonjour,
J'ai crée une fonction qui ouvre juste une fenêtre d'alerte avec un seul bouton pour sortir :
Si je l'appelle comme ceci :
Code : 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
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()
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 msg="Mon msg :\n\nVoulez-vous vraiment supprimer cette donnée ?" titre="monTitre" from Fonctions.FoncMesAlerte1button import foncFenAlerte1Choix foncFenAlerte1Choix(titre, msg)
Là j'ai ce msg d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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
_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 :
Là non :
Code : Sélectionner tout - Visualiser dans une fenêtre à part bouValidMsgBox = Button(fenMsgBox, bg="Slate Gray", command=fenMsgBox.destroy)
Je comprends pas d'ou viens le problème !
Code : Sélectionner tout - Visualiser dans une fenêtre à part bouValidMsgBox = Button(fenMsgBox, image=PHOTO4, bg="Slate Gray", command=fenMsgBox.destroy)
Partager