How to Create Message Box in Tkinter in Python
To create a message box in
tkinter in Python, import messagebox from tkinter and call functions like messagebox.showinfo() to display a popup. This shows a simple dialog with a message and an OK button.Syntax
To use message boxes in Tkinter, first import the messagebox module from tkinter. Then call one of its functions to show different types of message boxes:
messagebox.showinfo(title, message): Shows an information box with an OK button.messagebox.showwarning(title, message): Shows a warning box.messagebox.showerror(title, message): Shows an error box.messagebox.askquestion(title, message): Shows a question box with Yes/No buttons.
Each function takes a title string for the window title and a message string for the text inside the box.
python
from tkinter import messagebox messagebox.showinfo('Title', 'Your message here')
Example
This example creates a simple Tkinter window with a button. When you click the button, it shows an information message box with a greeting.
python
import tkinter as tk from tkinter import messagebox def show_message(): messagebox.showinfo('Greeting', 'Hello! This is a message box.') root = tk.Tk() root.title('Message Box Example') button = tk.Button(root, text='Show Message', command=show_message) button.pack(padx=20, pady=20) root.mainloop()
Output
A small window with a button labeled 'Show Message'. Clicking it opens a popup titled 'Greeting' with the text 'Hello! This is a message box.' and an OK button.
Common Pitfalls
Some common mistakes when using Tkinter message boxes are:
- Not importing
messageboxseparately fromtkinter. - Calling message box functions before creating the main Tkinter window (
Tk()), which can cause errors. - Forgetting to run the Tkinter event loop (
mainloop()), so the window and message box never appear.
Always create the main window first, then call message boxes inside event handlers or after the window is ready.
python
import tkinter as tk # Wrong: calling messagebox before creating root from tkinter import messagebox messagebox.showinfo('Oops', 'This will cause an error') root = tk.Tk() root.mainloop()
Quick Reference
Here is a quick summary of common messagebox functions:
| Function | Description |
|---|---|
| showinfo(title, message) | Information box with OK button |
| showwarning(title, message) | Warning box with OK button |
| showerror(title, message) | Error box with OK button |
| askquestion(title, message) | Question box with Yes/No buttons |
| askyesno(title, message) | Yes/No box returning True/False |
| askokcancel(title, message) | OK/Cancel box returning True/False |
Key Takeaways
Import messagebox from tkinter to create popup dialogs.
Call messagebox functions after creating the main Tkinter window.
Use showinfo, showwarning, showerror for simple alerts.
Use askquestion or askyesno for dialogs that require user response.
Always run the Tkinter mainloop to display windows and dialogs.