Python Tkinter 如何相对于根窗口定位toplevel()窗口?
在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("根窗口")
# 创建toplevel窗口
top = Toplevel(win)
top.geometry("400x200")
# 在toplevel窗口中创建标签
Label(top, text= "这是一个toplevel窗口", font="Calibri, 12").pack()
x = win.winfo_x()
y = win.winfo_y()
top.geometry("+%d+%d" %(x+200,y+200))
# 将toplevel窗口保持在根窗口前面
top.wm_transient(win)
top.mainloop()
输出
运行上面的代码将在主窗口之外显示一个toplevel窗口。