@pavuuuk

Чем отличаются классы Child, и как правильнее создавать дочернее окно в tkinter?

1 вариант
from tkinter import *

class Main(Frame):
    def __init__(self, root):
        super().__init__(root)
        self.root = root
        self.root.title("MyWindow")
        self.root.geometry("400x300+250+500")
        Child(root)
        self.root.mainloop()
        
class Child:
    def __init__(self, master):
        self.root = Toplevel(master)
        self.root.geometry("300x200")


root = Tk()
Main(root)

2 вариант
from tkinter import *

class Main(Frame):
    def __init__(self, root):
        super().__init__(root)
        self.root = root
        self.root.title("MyWindow")
        self.root.geometry("400x300+250+500")
        Child()
        self.root.mainloop()
        
class Child(Toplevel):
    def __init__(self):
        super().__init__(root)
        self.title("Child")
        self.geometry("300x200")


root = Tk()
Main(root)

Почему во втором варианте в самом классе Child (self) появляются такие атрибуты, как title и т.д.?
Если сделать так в Main, то при выполнении, например self.title("MyWindow") компилятор выдаст ошибку, что main не имеет title
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы