在tkinter中的类之间传递值

时间:2016-01-26 20:12:34

标签: python oop tkinter

我的问题是我希望我的代码从用户那里获取一个条目, 那么用户输入的值将显示在前一课程的顶层页面上。 我已经搜索了很多,但没有一个解决方案适合我。 那么你们中的任何一个人都可以慷慨地告诉我如何更改我的代码,这样我才能真正显示用户在顶级页面中输入的值?

非常感谢< 3

import Tkinter as tk


class Demo2:
    def __init__(self, master):
        self.master = master
        self.quitButton = tk.Button(self.master, text = 'Quit', width = 25, command = self.close_windows)
        self.goButton = tk.Button(self.master, text = "Go",  command = self.window_one)
        global EnteredNumber
        self.EnteredNumber = tk.IntVar()
        self.entry = tk.Entry(self.master,textvariable=self.EnteredNumber)
        VertexNumber = self.EnteredNumber.get()
        self.goButton.pack()
        self.entry.pack()
        self.quitButton.pack()

    def close_windows(self):
        self.master.destroy()

    def window_one(self):
        self.window_one = tk.Toplevel(self.master)
        self.app = Demo3(self.window_one)

class Demo3():
    def __init__(self, master):
        self.master = master
        self.label1 = tk.Label(self.master, text=EnteredNumber)
        self.label = tk.Label(self.master, text="Hi")
        self.label.pack()
        self.label1.pack()

def main():
    root = tk.Tk()
    app = Demo2(root)
    root.overrideredirect(True)
    root.geometry("{0}x{1}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight()))
    root.mainloop()


if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:2)

Entry的值发送到__init__的{​​{1}}

首先对Demo3()的更改:

window_one()

然后def window_one(self): enterednumber = self.entry.get() # Grab the value in the Entry self.window_one = tk.Toplevel(self.master) self.app = Demo3(self.window_one, enterednumber) # Send it to Demo3 as an argument

Demo3()