Fenetre MessageBox tkinter Python 3

Signaler
Messages postés
4
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
12 février 2013
-
croute4
Messages postés
4
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
12 février 2013
-
Bonjour à tous
Je vous écris car j'ai un petit soucis tout bête.
j'essais en vain de faire apparaitre une fenetre popup dans mon programme.
En glanant ici et là des infos sur le net, j'ai trouvé la syntaxe suivante
MessageBox.Showerror("Erreur","Erreur entrée")

mais j'obtiens le message d'erreur suivant:
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 1442, in __call__
return self.func(*args)
File "/Users/billbaroud/Documents/Programmes python/Force verin/Verin.py", line 36, in calcul
MessageBox.Showerror("Erreur","Erreur entrée")
NameError: global name 'MessageBox' is not defined

Je comprend bien du coup qu'il y a un probleme avec MessageBox mais je ne comprend pas lequel.

Si une personne a une idée?
Je suis sur mac, des fois que cela change quelque chose?

De plus, trouvant trés peu d'info sur python 3 ne vaudrait-il pas mieux apprendre le python 2.7??

merci davance.

2 réponses

Messages postés
97
Date d'inscription
lundi 9 octobre 2006
Statut
Membre
Dernière intervention
7 décembre 2018
46
Bonsoir,

NameError: global name 'MessageBox' is not defined
Ce message indique que la fonction MessageBox n'est pas reconnue.
Il faut faire un import de la bibliothèque qui contient la fonction
# -*- coding: ISO-8859-15 -*-
from tkinter.messagebox import showerror
showerror("Erreur", "Erreur entrée")


Ce code minimal a pour inconvénient de faire apparaitre la fenêtre racine de TkInter.
Le code suivant permet d'invoquer TkInter et de masquer la fenêtre racine.
from tkinter import Tk
from tkinter.messagebox import showerror

if __name__ == '__main__':
    Tk_Appli = Tk()
    Tk_Appli.withdraw()
    showerror("Erreur", "Erreur entrée")
    Tk_Appli.destroy()


De plus, trouvant très peu d'info sur python 3 ne vaudrait-il pas mieux apprendre le python 2.7??
En cherchant un peu sur Internet on trouve pas mal d'info sur Python 3 Voir ici.

Bonne année 2013 en Python
Messages postés
4
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
12 février 2013

merci beaucoup pour cette superbe réponse!!
bonne année à tous!!!
par contre je n'ai pas trouvé pour mettre le sujet en "résolu"...

encore merci!