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

如何在Python Turtle模块中禁用窗口调整功能?

在Python Turtle中禁用窗口调整功能的方法

当然可以实现!Turtle本身并没有直接提供禁用窗口调整的API,但它是基于Tkinter开发的,所以我们可以通过访问底层的Tkinter窗口对象来修改窗口属性,实现禁用最大化、最小化按钮,以及禁止拖动改变大小的需求。

下面是具体的实现步骤和代码示例:

1. 获取底层的Tkinter窗口对象

Turtle的绘图窗口本质上是Tkinter的Tk实例,我们可以通过以下方式获取它:

import turtle

# 创建Turtle屏幕对象
screen = turtle.Screen()
# 获取画布,再通过画布拿到主窗口
root = screen.getcanvas().master

2. 禁止拖动调整窗口大小

调用Tkinter窗口的resizable()方法,将宽和高的可调整属性设为False,这样用户就无法通过拖动窗口边缘来改变尺寸了:

# 禁止窗口调整大小
root.resizable(width=False, height=False)

3. 隐藏最大化和最小化按钮

这一步的实现会稍微依赖平台,下面提供两种常见方案:

方案一:Windows平台专属(保留关闭按钮)

使用Tkinter窗口的attributes()方法,设置-toolwindow属性为True,这样窗口会变成工具窗口样式,只保留关闭按钮,最大化和最小化按钮会被隐藏:

# Windows下隐藏最大化、最小化按钮,保留关闭按钮
root.attributes('-toolwindow', True)

方案二:跨平台方案(需手动添加关闭按钮)

如果需要跨平台兼容,可以使用overrideredirect(True),这个方法会移除所有窗口装饰(包括标题栏、最大化/最小化/关闭按钮)。如果还需要保留关闭功能,就得手动添加一个关闭按钮:

# 移除所有窗口装饰(跨平台)
root.overrideredirect(True)

# 手动添加关闭按钮
import tkinter as tk
close_btn = tk.Button(root, text="关闭", command=root.destroy)
close_btn.pack(side=tk.BOTTOM, pady=5)

完整示例代码

import turtle
import tkinter as tk

# 初始化Turtle窗口
screen = turtle.Screen()
screen.title("不可调整的Turtle窗口")

# 获取底层Tkinter窗口
root = screen.getcanvas().master

# 禁止拖动调整大小
root.resizable(width=False, height=False)

# Windows下隐藏最大化、最小化按钮(可选)
root.attributes('-toolwindow', True)

# 如果你需要跨平台方案,注释掉上面一行,解开下面的代码
# root.overrideredirect(True)
# close_btn = tk.Button(root, text="关闭", command=root.destroy)
# close_btn.pack(side=tk.BOTTOM, pady=5)

# 测试绘图
t = turtle.Turtle()
t.forward(150)
t.left(90)
t.forward(150)
t.left(90)
t.forward(150)
t.left(90)
t.forward(150)

turtle.done()

注意事项

  • resizable(width=False, height=False)是跨平台有效的,无论哪种操作系统都能禁止拖动调整窗口大小。
  • -toolwindow属性仅在Windows系统上生效,在Linux或macOS上可能不会隐藏最大化/最小化按钮,甚至没有效果。
  • 使用overrideredirect(True)后,窗口会失去系统的标题栏和窗口管理功能(比如无法拖动窗口位置),如果需要拖动窗口,还得额外实现拖动逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 06:22:38