Python Tkinter – 如何将 topLevel() 小部件相对于根窗口定位?

tkinterpythongui-programming更新于 2024/1/23 13:00:17

在 Tkinter 中,toplevel 小部件用于创建弹出模式窗口。toplevel 窗口创建的弹出窗口的工作方式与 tkinter 应用程序的默认窗口类似。它可以包含 文本小部件、按钮小部件、画布小部件、框架 等小部件。

toplevel 窗口的大小和位置可以通过使其在整个屏幕上灵活决定。在 toplevel 窗口中,所有小部件始终位于其他窗口的顶部。

您可以使用 root.winfo_x() 和 root.winfo_y() 来获取根窗口的位置。然后,您可以使用 geometry 方法将 toplevel 小部件相对于根窗口进行定位。使 toplevel 小部件相对于根窗口可防止两个窗口重叠并将它们分开。让我们举个例子来演示它是如何工作的。

示例

# 导入所需的库
from tkinter import *

# 创建 tkinter 框架或窗口的实例
win = Tk()

# 设置窗口的大小
win.geometry("700x300")
win.title("Root Window")

# 创建顶层窗口
top = Toplevel(win)
top.geometry("400x200")

# 在顶层小部件中创建标签
Label(top, text= "This is a Toplevel window", font="Calibri, 12").pack()
x = win.winfo_x()
y = win.winfo_y()
top.geometry("+%d+%d" %(x+200,y+200))

# 将顶层窗口保持在根窗口前面
top.wm_transient(win)

top.mainloop()

输出

运行上述代码将显示主窗口之外的顶层窗口。


相关文章


有用资源