使 Toplevel window 跟随根 Tk window
Make Toplevel window follow root Tk window
我在这方面找不到任何东西,想知道是否有可能。
当您在屏幕上移动 Tk window 时,有没有办法让 Toplevel window 跟随根 Tk window?
我所做的是构建一个 Tk 根 window root=Tk()
。然后我构建顶层 window=Toplevel()
并使顶层 window 与右侧的根 window 齐平。我很好奇的是如何将 Toplevel window 锚定到根,所以当我拖动根 window 时,Toplevel window 随之而来。
您可以绑定到根 window 的 <Configure>
事件,该事件在 window 移动或调整大小时触发。这样你就可以调整顶层的位置了。
import tkinter as tk
class Example:
def __init__(self):
self.root = tk.Tk()
label = tk.Label(self.root, text="Move me around...")
label.pack(side="top", fill="both", expand=True, padx=20, pady=20)
self.top = tk.Toplevel()
label = tk.Label(self.top, text="... and I will follow!")
label.pack(side="top", fill="both", expand=True, padx=20, pady=20)
self.root.bind("<Configure>", self.sync_windows)
def start(self):
self.root.mainloop()
def sync_windows(self, event=None):
x = self.root.winfo_x() + self.root.winfo_width() + 4
y = self.root.winfo_y()
self.top.geometry("+%d+%d" % (x,y))
Example().start()
我在这方面找不到任何东西,想知道是否有可能。
当您在屏幕上移动 Tk window 时,有没有办法让 Toplevel window 跟随根 Tk window?
我所做的是构建一个 Tk 根 window root=Tk()
。然后我构建顶层 window=Toplevel()
并使顶层 window 与右侧的根 window 齐平。我很好奇的是如何将 Toplevel window 锚定到根,所以当我拖动根 window 时,Toplevel window 随之而来。
您可以绑定到根 window 的 <Configure>
事件,该事件在 window 移动或调整大小时触发。这样你就可以调整顶层的位置了。
import tkinter as tk
class Example:
def __init__(self):
self.root = tk.Tk()
label = tk.Label(self.root, text="Move me around...")
label.pack(side="top", fill="both", expand=True, padx=20, pady=20)
self.top = tk.Toplevel()
label = tk.Label(self.top, text="... and I will follow!")
label.pack(side="top", fill="both", expand=True, padx=20, pady=20)
self.root.bind("<Configure>", self.sync_windows)
def start(self):
self.root.mainloop()
def sync_windows(self, event=None):
x = self.root.winfo_x() + self.root.winfo_width() + 4
y = self.root.winfo_y()
self.top.geometry("+%d+%d" % (x,y))
Example().start()