tkinter如何返回Entry的值并继续使用(不是简单的get即可,详情看代码)

代码如下:

import tkinter
   
windows_top = tkinter.Tk()
windows_top.title("aaa")
windows_top.geometry('200x200+400+100')   


class move_a(object):
    def __init__(self):       
        self.scale_in = tkinter.Entry(windows_top)
        self.scale_in.place(x=20,y=20)     
        tkinter.Button(windows_top, text='确定',command=self.num_hat).place(x=86,y=85)

        self.num_hat()
        print('值是:',self)

    def num_hat(self):
        self.a = self.scale_in.get()
        print(self.a)
        return self.a
       

    def run(self):
        windows_top.mainloop()



if __name__=="__main__":
    app = move_a()
    app.run()

目前的返回结果是:先打印出

值是: 

然后才出现tkinter窗口。

不知道说清楚了吗。

你要做什么效果?
Entry文本框初始时是没有内容的,用self.scale_in.get()获取的是空字符串, 你可以用Entry 的textvariable 属性将一个 StringVar 变量与Entry 内容关联。
就可以直接用StringVar 变量获取文本框输入的内容了
你题目的解答代码如下:

import tkinter
windows_top = tkinter.Tk()
windows_top.title("aaa")
windows_top.geometry('200x200+400+100')

class move_a(object):
    def __init__(self):
        self.a = tkinter.StringVar()
        self.a.set("默认值")
        self.scale_in = tkinter.Entry(windows_top,textvariable=self.a)
        self.scale_in.place(x=20,y=20)
        tkinter.Button(windows_top, text='确定',command=self.num_hat).place(x=86,y=85)
        print('值是:',self.a.get())
    def num_hat(self):
        print(self.a.get())
        return self.a.get()

    def run(self):
        windows_top.mainloop()

if __name__=="__main__":
    app = move_a()
    app.run()

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img