python 中tkinter Entry 附值问题
[code]importtkinterastkclassa():def__init__(self,id):self.id=id#传入参数root=tk.Tk()var_e...
[code]import tkinter as tk
class 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 a
import tkinter as tk
root =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附值。
所以救助各位,我实在想不到如何解决 展开
class 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 a
import tkinter as tk
root =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附值。
所以救助各位,我实在想不到如何解决 展开
展开全部
主要原因出在你的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()
追问
用了 您这个方式
还是没有达到我想要的 效果
我想要的是 点击 按钮后
调用a.py。 您的方法 直接就把a.py调用了 看不到我要的按钮了
追答
你不把你功能说清楚........
主要原因是你用了两个tk.Tk()创建了两个主窗口,你把需要由按钮弹出得窗口设置为子窗口就是可以了。利用tk.Toplevel()创建。
下面是代码:a.py
import tkinter as tk
class A:
def __init__(self, id):
# 这是主要修改的地方
root = tk.Toplevel()
self.id = id
var_e = tk.StringVar()
e = tk.Entry(root,textvariable=var_e)
e.pack()
print(self.id)
var_e.set(self.id)
root.mainloop()
b.py
from a import A
import tkinter as tk
def test():
foo = A('1019')
root = tk.Tk()
b = tk.Button(root, text='var', command=test)
b.pack()
root.mainloop()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询