4
我想确定哪个小部件(本例中为框架)位于顶部(或可见)。确定哪个Tkinter小部件位于顶部(或可见)
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不帧
在我的申请,我有几个帧。每个框架上都有很多标签。繁忙功能从机床读取所有这些信息。随时获取所有信息使整个机器运转缓慢。我只想获取并更新用户可以看到的信息。我可以通过手动保存一个告诉我最后一个.lift()编辑窗口的全局信息来看到一种方法。但这似乎并不干净。 (总共有大约400个标签被更新,但是最多只有60个是在任何给定时间可见的,而一些“标签”实际上是图形化的仪表面,所以很多马力浪费更新这些当他们不可见时)
结束创建全局LastVisibleFrame。在哪里我。升()一帧我也LastVisibleFrame = frame1。每个框架都有一个函数IsVisible(),如果LastVisible == frame1,则返回True。我真的不想创造另一个全球,但这是我能想到的最干净的。 – Burtski