Как я могу создать объект из класса, который является дочерним для кадра, передавая блокнот? - PullRequest
0 голосов
/ 21 января 2020

У меня есть следующий код:

import tkinter as tk
from tkinter import ttk

def main():
    mainWin = tk.Tk()
    notebook_Frame = ttk.Notebook(mainWin)  
    my_Tab = tk.Frame(notebook_Frame)

В вышеприведенном коде меня волнует то, что я создаю объект notebook_Frame класса ttk.Notebook. Затем я могу передать это в вызов tk.Frame () и получить кадр с именем my_tab.

Итак, теперь я хочу создать пользовательский тип фрейма, который будет передан фрейму или записной книжке. Вот определение класса.

import tkinter as tk
from tkinter.ttk import Notebook

class SetupServers(tk.Frame):
    def __init__(self, parentFrame):
        self.parentFrame = parentFrame
        super().__init__(self.parentFrame)

И наш новый экземпляр main.

def main():
    mainWindow = tk.Tk()
    myFrame = Frame(mainWindow)
    nb_Frame = Notebook(myFrame)    
    tab = SetupServers(nb_Frame)
    mainWindow.mainloop()

Почему main не работает с?

TypeError: descriptor ' init ' требует объект 'super', но получил 'Notebook'

Почему я могу передать классу Frame записную книжку, но когда я делаю подкласс Frame, я не могу передать записную книжку? Что-то не так с моим определением класса? Определение SetupServers init ()? Или вызов super ()?

Любое руководство было бы неплохо. Большинство уроков основаны на c этой концепции и / или к тому моменту, когда они доберутся до того, что я должен искать, я перебираю их, чтобы быстро получить суть материала. Спасибо за любую помощь.

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