Добавление параметров в функцию init наследуемого класса - PullRequest
0 голосов
/ 14 февраля 2019

Я совершенно новичок в методах наследования и переопределения, и я не совсем уверен, как переопределить метод __init__ класса, более конкретно, добавив в него другой параметр.

По сути, я хочу переопределить__init__ метод класса tkinter simpledialog.Dialog.

Из документации init метод simpledialog.Dialog имеет параметры __init__(self,parent,title=None), и я хочу, чтобы он был __init__(self,parent,labeltitle,title=None)

1 Ответ

0 голосов
/ 14 февраля 2019

Хорошо, ребята, поэтому для контекста я также изменил некоторые другие методы класса, я дам вам код, чтобы люди знали, почему я хочу labeltitle в методе init .Я нашел решение о том, как решить мою проблему, если у кого-то есть идея или возникнет проблема с этим, дайте мне знать.

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") я получаю диалоговое окно с этими названиями.Теперь я могу создавать несколько объектов с разными названиями окон и ярлыками, поскольку класс simpledialog.Dialog позволяет изменять только заголовок диалогового окна, но не ярлык.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...