Я занимаюсь оптимизацией своего кода, который работает, но совершенно неуправляем. Мое главное окно имеет такую структуру:
window
notebook1
frame1
label1
text1
label2
Есть (3) блокнота, по 3-5 рамок в каждой. Поскольку в моем текущем коде все объекты созданы вручную, получить к ним доступ из любого другого места очень просто. Однако это значительно усложняет добавление / изменение страниц записной книжки.
import tkinter as tk
import tkinter.ttk as ttk
class MyFrame(ttk.Frame):
def __init__(self):
ttk.Frame.__init__(self)
self.grid(padx=3, pady=3, row=3, column=0, columnspan=1, sticky=tk.W)
self.header = ttk.Label(self, text="More testing")
self.body = tk.Text(self)
self.body.insert(tk.INSERT, "Hello...")
self.footer = ttk.Label(self, text="More testing")
self.header.grid(row=0, sticky=tk.W)
self.body.grid(row=1, sticky=tk.W)
self.footer.grid(row=2, sticky=tk.W)
class MyNotebook(ttk.Notebook):
def __init__(self):
ttk.Notebook.__init__(self)
self.grid(padx=3, pady=3, row=0, column=1, columnspan=1, sticky=tk.W)
self.enable_traversal()
self.add(MyFrame(), text="This is Page #1")
print(self.tabs()[0])
# Creating blank window
win = tk.Tk()
win.title("Coinbase Pro Markets")
win.iconphoto(False, tk.PhotoImage(file="icons/coinbase-pro.png"))
# Setting Theme
style = ttk.Style()
style.theme_use('alt')
# Start the loop
nb1 = MyNotebook()
win.mainloop()
Как написано, все отображается именно так, как я хочу; проблема заключается в доступе к динамически создаваемым виджетам. У меня нет проблем с доступом к фреймам, которые я добавляю в блокнот, но ярлыки и текстовые виджеты — это совсем другое дело. Поскольку мои виджеты постоянно меняются — программа читает / управляет данными в реальном времени — без доступа после создания виджеты бесполезны.
Где я ошибаюсь?
