请求提供实现Tkinter窗口在屏幕上下左右/中心打开的代码
Tkinter窗口启动定位工具代码实现
下面的代码实现了通过选择定位选项,让新启动的Tkinter窗口直接处于屏幕顶部、左侧、右侧、底部或中心位置。主窗口提供下拉选择框和启动按钮,选择目标位置后点击按钮即可生成对应位置的窗口:
import tkinter as tk from tkinter import ttk # 定义窗口固定尺寸,可自行修改 WINDOW_WIDTH = 400 WINDOW_HEIGHT = 300 def calculate_position(position_type): # 获取屏幕宽高 screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() # 按选择的定位类型计算窗口左上角坐标 if position_type == "中心": x = (screen_width - WINDOW_WIDTH) // 2 y = (screen_height - WINDOW_HEIGHT) // 2 elif position_type == "顶部": x = (screen_width - WINDOW_WIDTH) // 2 y = 0 elif position_type == "左侧": x = 0 y = (screen_height - WINDOW_HEIGHT) // 2 elif position_type == "右侧": x = screen_width - WINDOW_WIDTH y = (screen_height - WINDOW_HEIGHT) // 2 elif position_type == "底部": x = (screen_width - WINDOW_WIDTH) // 2 y = screen_height - WINDOW_HEIGHT else: # 默认 fallback 到中心位置 x = (screen_width - WINDOW_WIDTH) // 2 y = (screen_height - WINDOW_HEIGHT) // 2 return x, y def launch_target_window(): selected_pos = position_var.get() x, y = calculate_position(selected_pos) # 创建目标窗口 target_win = tk.Toplevel(root) target_win.title(f"定位窗口 - {selected_pos}") target_win.geometry(f"{WINDOW_WIDTH}x{WINDOW_HEIGHT}+{x}+{y}") # 添加示例标签验证位置 ttk.Label(target_win, text=f"当前窗口位于屏幕{selected_pos}位置").pack(pady=50) # 主窗口初始化 root = tk.Tk() root.title("窗口定位选择器") root.geometry("300x150") # 定位选项变量 position_var = tk.StringVar(value="中心") # 界面布局 ttk.Label(root, text="选择窗口启动位置:").pack(pady=10) position_combo = ttk.Combobox(root, textvariable=position_var, values=["中心", "顶部", "左侧", "右侧", "底部"], state="readonly") position_combo.pack(pady=5) launch_btn = ttk.Button(root, text="启动窗口", command=launch_target_window) launch_btn.pack(pady=15) root.mainloop()
关键说明
- 直接修改
WINDOW_WIDTH和WINDOW_HEIGHT的值,可以自定义目标窗口的大小 - 下拉选择框设为只读状态,避免输入无效定位选项
geometry方法的格式为宽x高+X坐标+Y坐标,通过计算好的坐标直接固定窗口位置
内容的提问来源于stack exchange,提问作者Aria
相关产品推荐
相关产品推荐

