mihota
mihota

Reputation: 335

tkinter showinfo python 3

I am trying to show an info window by using

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

However, I am getting error while using from tkinter import *

The problem is solve if I also have import tkinter.messagebox

So I am confused. Isn't from tkinter import * is supposed to import everything inside tkinter?

Upvotes: 7

Views: 51953

Answers (4)

Shardul Nalegave
Shardul Nalegave

Reputation: 409

from tkinter import * will load Tkinter's __init__.py which doesn't include messagebox, so to solve it we do import tkinter.messagebox which loads messagebox's __init__.py.

Upvotes: 5

jackotonye
jackotonye

Reputation: 3853

Can also try this method to access the messagebox method

import tkinter as tk

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

Upvotes: 2

josti
josti

Reputation: 61

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)

you just import messagebox from tkinter and you do messagebox.(for example)showinfo("test" , "blablablabla")

Upvotes: 6

Mattias Backman
Mattias Backman

Reputation: 957

If you use the from module import x format, you don't prefix the imported resources with the module. So try

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

If you import like this: import tkinter.messagebox you reference it with the module, which is why you don't get an error in that case.

Upvotes: 5

Related Questions