Я пытался запустить tkinter GUI, который работает с использованием классов. Для переключения между классами я использовал блоки уничтожения, которые задерживались с помощью wait_variable до тех пор, пока не была нажата кнопка, которая обновляет переменную и запускает следующий класс. Тем не менее, когда я использовал свою переменную wait_variable в двух отдельных классах, она сломалась.
from tkinter import *
master = Tk()
def function1():
wait.set(1)
class2(master)
def function2():
wait.set(1)
class1(master)
wait = IntVar()
class class1:
def __init__(self, window_name):
button1=Button(master, text="Button1", command=function1)
button1.place(relx=0.3, rely=0.5, relwidth=0.3, relheight=0.35, anchor=CENTER)
window_name.wait_variable(wait)
button1.destroy()
class class2:
def __init__(self, window_name):
canvas = Canvas(master, highlightthickness=3, highlightbackground="black", bg="white")
canvas.place(relx=0.757, rely=0.5, relwidth=0.22857, relheight=0.97, anchor=W)
button2=Button(master, text="Button2", command=function2)
button2.place(relx=0.16875, rely=0.5, relwidth=0.14286, relheight=0.11, anchor=CENTER)
window_name.wait_variable(wait) #<-- here
order_display_canvas.destroy()
button2.destroy()
class1(master)
master.mainloop() #creates windows loop
Это голый код моего кода, поэтому схема выглядит немного странно (обратите внимание, что в итоге будет использовано более двух связанных модулей потом). Любая помощь приветствуется.
Редактировать: я бы реализовал предложение acw1668, но в конечном итоге я хочу иметь несколько кнопок на одной странице, каждая из которых ведет к различным классам. Поэтому это решило бы голые кости, но не обобщенную форму.