from threading import Timer from tkinter import * import tkinter.messagebox def show(message): tkinter.messagebox.showinfo("Test", message) class Application(Frame): def say_hi(self): print("saying hi") show("hi there, everyone!") def hang(self): print("will hang now with show()") show("hang") def starthang(self): print("hanging in 2") Timer(2, self.hang, ()).start() def createWidgets(self): self.QUIT = Button(self) self.QUIT["text"] = "QUIT" self.QUIT["fg"] = "red" self.QUIT["command"] = self.quit self.QUIT.pack({"side": "left"}) self.hi_there = Button(self) self.hi_there["text"] = "Hello", self.hi_there["command"] = self.say_hi self.hi_there.pack({"side": "left"}) self.hi_there = Button(self) self.hi_there["text"] = "Hang", self.hi_there["command"] = self.starthang self.hi_there.pack({"side": "left"}) def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.createWidgets() root = Tk() app = Application(master=root) app.mainloop() root.destroy()