Search code examples
pythonpython-3.xbuttontkinterpopupwindow

I want to Print my output on pop up window? how should I approach?


import tkinter as tk
import datetime 

def write_slogan():
    dt_object = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print("OrderName: %s"%dt_object)


master = tk.Tk()
tk.Button(master, 
          text='ORDER Number', 
          command=write_slogan).grid(row=3, 
                                    column=1, 
                                    sticky=tk.W, 
                                    pady=4)

tk.mainloop()

How should I print the above code outputs on the pop-up window rather than terminal?


Solution

  • Print message inside tkinter window rather than terminal

    If you just want to print the message in the root window, you can use a label widget like this in the following code:

    import tkinter as tk
    
    master = tk.Tk()
    
    def write_slogan():
        info_message = "Your message"
        tk.Label(master, text=info_message).grid(row=2, column=1) 
    
    btn = tk.Button(master, text='ORDER Number', command=write_slogan)
    btn.grid(row=3, column=1, sticky=tk.W, pady=4)
    
    master.mainloop()
    

    output

    Print message in a separate pop-up window

    You can use a message box from the tkinter messagebox module to pop up some info with your info message displayed in it.

    import tkinter as tk
    import tkinter.messagebox as tkmb
    
    def write_slogan():
        info_message = "Your message"
        # info message box
        tkmb.showinfo("Output", info_message)
    
    master = tk.Tk()
    
    btn = tk.Button(master, text='ORDER Number', command=write_slogan)
    btn.grid(row=3, column=1, sticky=tk.W, pady=4)
    
    master.mainloop()
    

    output

    Creating a toplevel window as a pop up window

    import tkinter as tk
    import tkinter.messagebox as tkmb
    
    def write_slogan():
        # toplevel window
        top_win = tk.Toplevel(master)
        top_win.title('Toplevel')
        info_message = "Your message"
        # info message box
        tk.Label(top_win, text=info_message).grid(row=0, column=0) 
    
    master = tk.Tk()
    master.title('Master')
    
    btn = tk.Button(master, text='ORDER Number', command=write_slogan)
    btn.grid(row=3, column=1, sticky=tk.W, pady=4)
    
    master.mainloop()
    

    output