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

Tkinter Canvas.create_text文本无法随窗口自适应换行问题求助

Tkinter Canvas 文本自动换行问题求助

使用Tkinter开发时,发现Canvas.create_text无法在窗口大小改变时自动换行,也没法把文本限制在Canvas组件范围内。虽然width参数能实现单词换行,但实际表现完全不可控。

以下是复现问题的示例代码:

root = Tk()
root.geometry('500x350')
def change(event):
    print('event.width = '+str(event.width)) # Debugging
    canvas.itemconfigure(text_id, width=event.width)

canvas = Canvas(root,width=500,height=300)
text_id = canvas.create_text(250,50,text='Lorem ipsum dolor sit amet consectetur adipiscing elit  do eiusmod tempor incididunt ut labore et dolore magna aliqua.',anchor=N)
canvas.bind('<Configure>',change)
canvas.pack()

mainloop()

我已经尝试过以下解决方法,但均未奏效:

  • 绑定<Configure>事件动态修改Canvas.create_text的width参数:canvas.itemconfigure(text_id, width=event.width)
  • 用pack布局设置Canvas:self.canvas.pack(fill=BOTH, expand=True )
  • 调用canvas.coords调整文本坐标:self.canvas.coords(self.total_prod_1_text,(text_x-400),50)

求可行的解决思路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:42:39