Search code examples
pythontkintertkmessagebox

Change tkMessageBox "askyesno" button names


How can I change button names of tkMessagebox.askyesno function?

Exactly I want to change yes-button text yes with other and no-button text too


Solution

  • You can't just simply modify the button text. You need to create a custom dialog. For example (taken from http://tkinter.programujte.com/tkinter-dialog-windows.htm):

    from Tkinter import *
    
    class MyDialog:
    
        def __init__(self, parent):
    
            top = self.top = Toplevel(parent)
    
            Label(top, text="Value").pack()
    
            self.e = Entry(top)
            self.e.pack(padx=5)
    
            b = Button(top, text="OK", command=self.ok)
            b.pack(pady=5)
    
        def ok(self):
    
            print "value is", self.e.get()
    
            self.top.destroy()
    
    
    root = Tk()
    Button(root, text="Hello!").pack()
    root.update()
    
    d = MyDialog(root)
    
    root.wait_window(d.top)