Change words on tkinter Messagebox buttons

Emilio M Bumachar picture Emilio M Bumachar · Apr 26, 2013 · Viewed 11.7k times · Source

I'm using tkinter's "askokcancel" message box to warn the user, with a pop-up, of an irreversible action.

from tkinter import Tk
Tk().withdraw()
from tkinter.messagebox import askokcancel
askokcancel("Warning", "This will delete stuff")

I'd like to change the text of the 'OK' button (from 'OK') to something like 'Delete', to make it less benign-looking.

Is this possible?

If not, what is another way to achieve it? Preferably without introducing any dependancies...

Answer

Yousef_Shamshoum picture Yousef_Shamshoum · Apr 26, 2013

Why not open a child window thus creating your own box with your own button like this:

from tkinter import *
def messageWindow():
    win = Toplevel()
    win.title('warning')
    message = "This will delete stuff"
    Label(win, text=message).pack()
    Button(win, text='Delete', command=win.destroy).pack()
root = Tk()
Button(root, text='Bring up Message', command=messageWindow).pack()
root.mainloop()