AttributeError: '_tkinter.tkapp' object has no attribute 'footerbar'
def put_frames(self):
self.statusbar = Statusbar(self, self.footerbar) # _по аналогии передал
self.statusbar.grid(row=1, column=0, columnspan=3)
self.footerbar = Footterbar(self, self.statusbar) # тут передаем
self.footerbar.grid(row=2, column=0, columnspan=3)
...
class Statusbar(Frame):
def __init__(self, parent, footerbar): # _футер по аналогии добавил
super().__init__(parent)
self.footerbar = footerbar # по аналогии принял
def put_widgets(self):
self.txt = Text(self, height=15, width=35)
self.txt.grid(row=1, column=0, columnspan=3)
self.btn7 = ttk.Button(self, text='Text', command=self.footerbar.setbtn) # запускаем метод класса
self.btn7.grid(row=1, column=4)
def put_frames(self):
self.footerbar = Footterbar(self, self.statusbar) # тут передаем
self.footerbar.grid(row=2, column=0, columnspan=3)
self.statusbar = Statusbar(self, self.footerbar) # _по аналогии передал
self.statusbar.grid(row=1, column=0, columnspan=3)
class Footterbar(Frame):
def __init__(self, parent):
super().__init__(parent)
self.s = Statusbar(self)
self.f = Footterbar(self, self.Statusbar)
self.put_widgets()
AttributeError: 'Footterbar' object has no attribute 'Statusbar'
И как ты это себе представляешь?
А когда придёшь к оборачиванию GUI в классы, поймёшь, что передача функции/метода - наиболее простой и практичный подход.
def start():
global i
i = 0
<b>threading.Thread(target=ex1).start()</b>