import tkinter as tk def center_toplevel_window(toplevel_window, parent_window): """ 将一个 Toplevel 窗口相对于其父窗口居中。 :param toplevel_window: 要居中的 Toplevel 窗口实例。 :param parent_window: 父窗口实例 (通常是 tk.Tk 或另一个 Toplevel)。 """ toplevel_window.update_idletasks() # 确保窗口已经渲染,以便获取正确的尺寸 # 获取父窗口的几何信息 parent_width = parent_window.winfo_width() parent_height = parent_window.winfo_height() parent_x = parent_window.winfo_x() parent_y = parent_window.winfo_y() # 获取 Toplevel 窗口自身的几何信息 window_width = toplevel_window.winfo_width() window_height = toplevel_window.winfo_height() # 计算新的 x, y 坐标,使 Toplevel 窗口居中 x = parent_x + (parent_width // 2) - (window_width // 2) y = parent_y + (parent_height // 2) - (window_height // 2) # 设置 Toplevel 窗口的几何位置 toplevel_window.geometry(f"+{x}+{y}")