如何在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
相关产品推荐
相关产品推荐

