如何在tkinter python中从一个窗口到另一个窗口获取变量
我想获取当前分配给“text”标签(label_reduced_l)的变量,并将其用于下一个class/tkinter窗口中的计算。启动后变量计数器_reduced和计数器_regular必须设置为0。全局变量不能处理这个任务,因为,正如我在另一个类中所提到的,它的值为0,尽管它被函数增加了。 我怎样才能改变它使它工作 来自课堂:如何在tkinter python中从一个窗口到另一个窗口获取变量,python,tkinter,Python,Tkinter,我想获取当前分配给“text”标签(label_reduced_l)的变量,并将其用于下一个class/tkinter窗口中的计算。启动后变量计数器_reduced和计数器_regular必须设置为0。全局变量不能处理这个任务,因为,正如我在另一个类中所提到的,它的值为0,尽管它被函数增加了。 我怎样才能改变它使它工作 来自课堂: class OrdinaryHourTicket(tk.Frame): def __init__(self, parent, controller):
class OrdinaryHourTicket(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
global counter_reduced
global counter_regular
counter_reduced = 0
counter_regular = 0
def on_click_up():
global counter_reduced
counter_reduced += 1
label_reduced_l.configure(text=str(counter_reduced))
def on_click_down():
global counter_reduced
if counter_reduced - 1 is not -1:
counter_reduced -= 1
label_reduced_l.configure(text=str(counter_reduced))
label_reduced = tk.Label(self, text='Bilet Ulgowy: ', height=3, width=20, bg='gold',
font=('Times New Roman', 20, 'bold'))
label_reduced.grid(row=1, column=0, padx=70, pady=5, sticky='es')
label_reduced_l = tk.Label(self, text=str(counter_reduced), height=3, width=5, bg='white',
font=('Times New Roman', 20, 'bold'))
label_reduced_l.grid(row=1, column=0, padx=5, pady=5, sticky='es')
btn_reduced_up = tk.Button(self, text="+", command=on_click_up, height=2, width=3,
font=('Times New Roman', 30, 'bold'))
btn_reduced_up.grid(row=1, column=1, padx=50, pady=5, sticky='ws')
btn_reduced_down = tk.Button(self, text="-", command=on_click_down, height=2, width=3,
font=('Times New Roman', 30, 'bold'))
btn_reduced_down.grid(row=1, column=1, padx=150, pady=5, sticky="ws")
上课:
class ForPay(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
global counter_reduced, counter_regular
label_pay_sum = tk.Label(self, text=(counter_reduced * 1.8 + counter_regular*3.8), height=3, width=5,
bg='white', font=('Times New Roman', 20, 'bold'))
label_pay_sum.grid(row=2, column=0, padx=5, pady=120, sticky='en')
您的
控制器
应具有对类OrdinaryHourTicket
实例的引用。使用controller.标签[text]
访问它。请将您的问题包括在内。