向继承的类

时间:2019-02-14 16:10:01

标签: python-3.x tkinter

对于继承和重写方法,我还是一个新手,我不确定如何重写类的__init__方法,更具体地说,是向其添加另一个参数。

基本上我想重写tkinter类simpledialog.Dialog的__init__方法。

从文档中,simpledialog.Dialog的 init 方法具有参数__init__(self,parent,title=None),我希望它是__init__(self,parent,labeltitle,title=None)

1 个答案:

答案 0 :(得分:0)

好的,所以对于上下文,我还更改了该类的其他一些方法,我将为您提供代码,以便人们知道为什么我想要 init 方法中的labeltitle。如果有人有想法或发现问题,我就找到了解决问题的解决方案。

import tkinter
from tkinter import simpledialog

class MyDialog(simpledialog.Dialog):

    def __init__(self,parent,labeltitle,title):
        self.labeltitle=labeltitle
        super().__init__(parent,title)


    def body(self, master):
        self.geometry("400x300")
        tkinter.Label(master, text=self.labeltitle).grid(row=0)

        self.e1 = tkinter.Entry(master)
        self.e1.grid(row=0, column=1,pady=30)
        return self.e1 # initial focus

    def apply(self):
        first = self.e1.get()
        self.result = first

所以现在当我像这样创建MyDialog的对象时: asd = MyDialog(root,“ title_of_the_label”,“ title_of_the_Dialogwindow”) 我得到带有这些标题的Dialogwindow。现在,我可以创建具有不同窗口标题和标签标题的多个对象,因为simpledialog.Dialog类仅允许更改Dialogwindow的标题,而不是labeltitle。