【问题标题】:Make Toplevel window follow root Tk window使顶层窗口跟随根 Tk 窗口
【发布时间】:2017-08-25 22:17:01
【问题描述】:

我在这方面找不到任何东西,我想知道这是否可能。

当您在屏幕上移动 Tk 窗口时,有没有办法让 Toplevel 窗口跟随根 Tk 窗口?

我要做的是建立一个 Tk 根窗口root=Tk()。然后我构建顶层window=Toplevel() 并使顶层窗口与右侧的根窗口齐平。我很好奇的是如何将顶层窗口锚定到根,所以当我拖动根窗口时,顶层窗口会跟随。

【问题讨论】:

    标签: python tkinter tk toplevel


    【解决方案1】:

    您可以绑定到根窗口的<Configure> 事件,该事件在窗口移动或调整大小时触发。有了它,您可以调整顶层的位置。

    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()
    

    【讨论】:

    • 好的,现在再问一个问题。我可以同时为两个顶层执行此操作吗?它适用于一个,但如果我同时打开两个,只有我点击的最新一个会跟随。有没有像 之类的东西?
    • @E.Oregel:没有&lt;Configure-2&gt;。您可以拥有的顶层数量没有限制。
    猜你喜欢
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多