我想确定哪个小部件(在本例中为框架)位于顶部(或无论如何可见)
from Tkinter import *
spam1=0
spam2=1000
def busywork():
global spam1
global spam2
#if frame1 is on top / visible
spam1=spam1+1
label1.config(text=str(spam1))
#if frame2 is on top / visable
spam2=spam2+1
label2.config(text=str(spam2))
root.after(10,busywork)
root=Tk()
frame1=Frame(root)
frame2=Frame(root)
button1=Button(frame1,text="Bring Frame 2 to top",command=frame2.lift)
label1=Label(frame1,text=str(spam1))
button1.pack()
label1.pack()
frame1.place(relx=0,rely=0)
button2=Button(frame2,text="Bring Frame 1 to top",command=frame1.lift)
label2=Label(frame2,text=str(spam2))
button2.pack()
label2.pack()
frame2.place(relx=0,rely=0)
root.after(10,busywork)
root.mainloop()
[这很接近]但它适用于windows而不是框架(或一般的小部件)
在我的应用程序中,我有几个帧。每个框架上都有许多标签。busywork功能从机床读取所有这些信息。一直获取所有信息会使整个机器变得迟钝。我只想获取和更新用户可以看到的信息。我可以找到一种方法,手动保存一个全局文件,告诉我最后一个.lift()ed窗口。但这似乎并不干净。(总共有大约400个标签被更新。但是,在任何给定的时间,最多只有大约60个标签是可见的。而且一些“标签”实际上是图形仪表面,所以当它们不可见时,更新这些标签会浪费很多人力)
当你们点击按钮时,你们可以设置一些变量来保持标签上的信息是可见的
可以将该变量添加到标签:
或者您可以保持对可视框架的访问
如果所有帧都是具有函数
update
的类,则只能更新该帧中的值相关问题 更多 >
编程相关推荐