python 中tkinter Entry 附值问题

[code]import tkinter as tkclass a():def __init__(self,id):self.id = id #传入参数root =tk.Tk()var_e =tk.StringVar()e = tk.Entry(root,textvariable = var_e)e.pack()print (self.id)var_e.set(self.id) #给Entry 附值 (b.py中传入的参数) root.mainloop()#foo = a(✀1019✀)[⼀code][code]import aimport tkinter as tkroot =tk.Tk()def test():foo =a.a(✀1019✀) #调用a.py并传入参数‘1019’e = tk.Button(root,text=✀var✀,command = test)#生成按钮,绑定按钮事件 调用test方法e.pack()root.mainloop()[⼀code]如上 我写了2个py文档,a.py,b.py如果 在a.py 中 建立实例 foo = a(✀1019✀) 然后运行 程序运行正常但如果我在b.py 中点击按钮 调用a.py 并传入参数(参数传入成功了 print能打印出来), var_e.set(self.id) 这句就无法给 Entry附值。所以救助各位,我实在想不到如何解决
2026年09月28日 07:26
有2个网友回答
网友(1):

主要原因出在你的b.py中的root = tk.Tk() 这一行代码。运行b.py时首先执行得就是这一行代码,然后就产生了一个新的窗口啊。

import a
import tkinter as tk


# root = tk.Tk()
def test():
    foo = a.a('1019')
    root = tk.Tk()
    e = tk.Button(root, text='var', command=test)
    e.pack()
    root.mainloop()


test()

网友(2):

捧个场希望得到采纳