出现问题的部分是我要求用户输入一个类, 我希望在另一个类中使用从该条目获得的值, 但是,无论我输入什么,这段代码总是给我0。 我认为这可能是因为当执行另一个类时,存储在前一个类的条目中的值会消失。但我不知道如何绕过它。 任何编码大师都可以帮我一点吗?
......
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
BackButton = tk.Button(self, text="Back",font=TNR24,command=lambda: controller.show_frame(MainPage))
PrintButton = tk.Button(self, text="Print it", command=self.print_message)
ExitButton = tk.Button(self,text="EXIT",command=exit_window)
ProceedButton=tk.Button(self, text="Proceed", command=lambda: controller.show_frame(PageTwo))
self.NumOfVertices= tk.IntVar()
global VertexNumber
VertexNumber=self.NumOfVertices.get()
NumOfVerticesEntry=tk.Entry(self,textvariable=self.NumOfVertices)
ProceedButton.pack()
BackButton.pack()
ExitButton.place(x=1240, y=670, width=40, height=30)
PrintButton.pack()
NumOfVerticesEntry.pack()
def print_message(self):
print self.NumOfVertices.get()
class PageTwo(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
lable=tk.Label(self,text=VertexNumber)
......
代码很长,所以我只接受了需要帮助的部分。 VertexNumber是我想要在Pagetwo类中存储和使用的变量。 但无论我输入什么,它总是变成0。 有没有办法在用户输入后立即永久存储该变量?
答案 0 :(得分:1)
您可以将var contact = [{
'name': "Peter Parker"
}];
设为全局变量,然后致电NumOfVertices
在NumOfVertices.get()
中获取PageTwo
的当前值。
IntVar
或者,要避免全局变量,可以使NumOfVertices = tk.IntVar()
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
...
NumOfVerticesEntry = tk.Entry(self, textvariable=NumOfVertices)
def print_message(self):
print NumOfVertices.get()
class PageTwo(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
VertexNumber = NumOfVertices.get()
label = tk.Label(self, text=VertexNumber)
成为一个
NumOfVertices
实例的属性。
然后,当您实例化PageOne
时,也会传递PageTwo
的实例,以便查找其PageOne
属性。
NumOfVertices