将参数添加到继承类的init函数

问题描述 投票:0回答:1

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

基本上我想覆盖tkinter类simpledialog.Dialog的__init__方法。

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

python-3.x tkinter
1个回答
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类只允许更改Dialog窗口的标题,而不是标签标题。

© www.soinside.com 2019 - 2024. All rights reserved.