You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供实现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 16:05:25