我有以下代码(我的真实程序示例):
from tkinter import *
def class1(Frame)
def nv(self,x):
self.vent=Toplevel(self.master)
self.app=class2(self.vent)
self.value=x
def __init__(self,master):
super().__init__(master)
self.master=master
self.frame=Frame(self.master)
self.btn=Button(self, text="example", command=lambda: self.nw(1))
self.btn.pack()
self.pack()
def class2(Frame):
def __init__(self, master):
super().__init__(master)
self.master=master
self.frame=Frame(self.master)
self.value=class1.nw.value.get()
root= Tk()
marco=Frame(root)
marco.pack
lf=class1(marco)
root.mainloop()
这最后一部分是问题,我不能正确使用.get()来解决这个问题,我想在创建新窗口时得到x的值。 我使用lambda,所以我可以用参数执行命令。 所以问题是,有没有办法让我在第2课中访问x的值?
答案 0 :(得分:0)
使用tkinter
时,您似乎对使用类感到困惑。 super()
不应与tkinter一起使用,如here所述,在声明课程时,您应使用class
关键字,而不是def
。 .get()
是tkinter
变量类的方法,例如tkinter.IntVar
,tkinter.StringVar
等,因此在您给出的示例中不需要。
您需要的是Frame
中的函数,您试图从(nv
)获取x的值,然后将该值解析为子{中的__init__
方法{ {1}}。
这是我的解决方案:
Frame