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

如何在Tkinter中调整图片的显示位置

解决Tkinter图片靠左显示的方法

你遇到的问题核心是Tkinter的grid布局默认会将控件在所在单元格内居中显示,只要添加对齐参数即可实现左对齐效果。

最简修改方案

将你原有代码中Label的grid配置行,添加sticky='w'参数即可,sticky='w'代表控件向单元格的左侧(West方向)对齐:
修改前:
widget.grid(ipadx=0,ipady=0)
修改后:
widget.grid(ipadx=0, ipady=0, sticky='w')

完整可运行代码

import tkinter as tk
import urllib.request
import io
from PIL import Image, ImageTk

root = tk.Tk()
# 你的图片链接
pic = "https://cdn.myanimelist.net/r/100x140/images/anime/6/73245.webp?s=95382e6f29a0093a04b1479145c18d61"
with urllib.request.urlopen(pic) as connection:
    raw_data = connection.read()
im = Image.open(io.BytesIO(raw_data))
image = ImageTk.PhotoImage(im)

# 如果你不需要额外画布可删除下面两行canvas相关代码,避免窗口顶部出现空白
canvas = tk.Canvas(root, width=600, height=300)
canvas.grid()

widget = tk.Label(root, image=image)
# sticky='w' 实现左对齐
widget.grid(ipadx=0, ipady=0, sticky='w')

root.mainloop()

可选方案:直接在Canvas上绘制图片

如果你需要保留Canvas作为图片载体,可直接调用Canvas的create_image方法指定左侧坐标放置图片:

canvas = tk.Canvas(root, width=600, height=300)
canvas.grid()
# x=0代表横坐标靠左,anchor='w'设置左对齐锚点
canvas.create_image(0, 150, anchor='w', image=image)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:42:03