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

