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

如何让Tkinter窗口中的图像始终保持居中(缩放时不偏移)

解决Tkinter中图像随窗口调整始终居中的问题

你当前的代码里,Canvas设置了固定的超大尺寸,且用固定像素坐标创建图像,窗口调整时Canvas不会跟着缩放,图像自然没法保持居中。可以按以下方式修改:

  • 让Canvas自适应窗口大小:给pack()方法加上fill=BOTH和expand=True参数,这样Canvas会填满整个窗口并随窗口缩放。
  • 使用相对坐标实现居中:create_image时用(0.5, 0.5)作为坐标,同时设置anchor=CENTER,这样图像会以Canvas的中心为基准居中,而非固定像素点。
  • 保留图像引用:把img赋值给Canvas的属性,避免Python垃圾回收机制销毁图像。

修改后的完整代码:

from tkinter import *

root = Tk()
root.geometry("600x350")

canvas = Canvas(root)
# 让Canvas填满窗口并随窗口缩放
canvas.pack(fill=BOTH, expand=True)

img = PhotoImage(file="4.png")
# 用相对坐标+锚点实现居中
canvas.create_image(0.5, 0.5, image=img, anchor=CENTER)
# 保留图像引用防止被回收
canvas.img = img

root.mainloop()

这样调整窗口大小时,图像就会始终保持在窗口中心位置了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:34:43