В настоящее время я изучаю методы наследования и переопределения.Я был в состоянии добавить к определенному методу, но сейчас я пытаюсь удалить что-то из метода суперкласса.Точнее говоря, мой суперкласс - это класс Dialog от simpledialog от tkinter.Я хочу изменить метод buttonbox () в моем подклассе, чтобы кнопка отмены была скрыта или удалена.Я покажу метод ' init ' и метод buttonbox суперкласса Dialog:
class Dialog(Toplevel):
def __init__(self, parent, title = None):
Toplevel.__init__(self, parent)
self.withdraw()
if parent.winfo_viewable():
self.transient(parent)
if title:
self.title(title)
self.parent = parent
self.result = None
body = Frame(self)
self.initial_focus = self.body(body)
body.pack(padx=5, pady=5)
self.buttonbox()
if not self.initial_focus:
self.initial_focus = self
self.protocol("WM_DELETE_WINDOW", self.cancel)
if self.parent is not None:
self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
parent.winfo_rooty()+50))
self.deiconify() # become visible now
self.initial_focus.focus_set()
self.wait_visibility()
self.grab_set()
self.wait_window(self)
def buttonbox(self):
box = Frame(self)
w = Button(box, text="OK", width=10, command=self.ok, default=ACTIVE)
w.pack(side=LEFT, padx=5, pady=5)
w = Button(box, text="Cancel", width=10, command=self.cancel)
w.pack(side=LEFT, padx=5, pady=5)
self.bind("<Return>", self.ok)
self.bind("<Escape>", self.cancel)
box.pack()
Так что теперь при создании моего подкласса я хочу наследовать суперкласс, но переопределить метод buttonbox так,что у меня есть только одна кнопка (кнопка с OK).
MyDialogClass(simpledialog.Dialog):
def buttonbox(self):
#code that will override the buttonbox method of superclass
Как мне переопределить это?