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

如何用if语句检测Python Tkinter窗口尺寸?现有代码无法运行

解决Tkinter窗口尺寸检测的问题

你的代码存在三个关键问题,导致无法达到预期效果:

  1. 未正确调用geometry方法
    root.geometry是方法对象本身,不是尺寸返回值,必须添加括号root.geometry()才能获取当前窗口的几何尺寸字符串。

  2. 代码执行顺序错误
    你在创建root窗口对象之前就尝试访问它,这会直接抛出NameError——因为root变量还未定义。必须先创建窗口、设置尺寸,再执行尺寸判断逻辑。

  3. geometry()返回值包含额外位置信息
    默认情况下,geometry()返回的字符串格式是宽x高+水平偏移+垂直偏移(比如300x300+100+100),直接和"457x450"对比会不匹配,需要提取纯尺寸部分。


修正后的代码示例:

from tkinter import Tk

root = Tk()
root.geometry("300x300")

# 提取纯宽高部分,忽略位置偏移信息
current_size = root.geometry().split('+')[0]
if current_size == "457x450":
    print("The window is 457x450 pixels!")
else:
    print("The window is not 457x450!")

root.mainloop()

代码说明:

  • 先完成窗口对象的创建与尺寸设置,再执行检测逻辑
  • 通过split('+')[0]将返回的几何字符串按+分割,取第一部分得到纯宽x高格式的尺寸字符串
  • 此时再进行字符串对比,就能准确判断窗口尺寸是否符合预期

内容的提问来源于stack exchange,提问作者Canofeggs 5410

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:05:43