web-dev-qa-db-fra.com

tkinter showinfo python 3

J'essaie de montrer une fenêtre d'information en utilisant

tkinter.messagebox.showinfo("info", "message")

Cependant, je reçois une erreur en utilisant from tkinter import *

Le problème est résolu si j'ai aussi import tkinter.messagebox

Donc je suis confus. from tkinter import * n'est-il pas censé tout importer à l'intérieur de tkinter?

6
WannaFly
from tkinter import *

from tkinter import messagebox

root = Tk()

root.title("test")
root.geometry("300x300")

app = Frame(root)
app.grid()
button1 = Button(app, text = " exit " , width=2, command=exit)
button1.grid(padx=110, pady=80)

def dialog():
    var = messagebox.showinfo("test" , "hoi, dit is een test als je dit leest is het gelukt")
button2 = Button(app, text = " uitleg " , width=4, command=dialog)
button2.grid()


root.mainloop(3)

vous importez juste messagebox de tkinter et vous faites messagebox (par exemple) showinfo ("test", "blablablabla")

5
josti

Si vous utilisez le format from module import x, vous ne préfixez pas les ressources importées avec le module. Alors essayez

messagebox.showinfo("info", "message")

Si vous importez comme ceci: import tkinter.messagebox, vous le référencez avec le module, raison pour laquelle vous ne recevez pas d'erreur dans ce cas.

3
Mattias Backman

from tkinter import * chargera le __init__.py de Tkinter qui n'inclut pas la boîte de message. Pour le résoudre, nous faisons import tkinter.messagebox qui charge le __init__.py de la boîte de message.

2
Shardul Nalegave

Peut aussi essayer cette méthode pour accéder à la méthode messagebox

import tkinter as tk

tk.messagebox.showinfo("info name","This is a Test")
2
jackotonye