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()
使用bind
事件,我尝试更改Canvas.create_text
方法的width
选项:canvas.itemconfigure(text_id, width=event.width)
我尝试了pack
方法:self.canvas.pack(fill=BOTH, expand=True )
我试过canvas.coords方法:self.canvas.coords(self.total_prod_1_text,(text_x-400),50)
1条答案
按热度按时间ss2ws0br1#
您将文本设置为画布的宽度,但将文本居中在固定的x坐标250处。如果你想让文本在窗口小部件的可见区域保持居中,那么你需要考虑文本左右两边的边距,并确保文本的中心位于可见画布的中心。
或者,将文本的左侧部分放在左边距,而不是固定文本的顶部中心。然后,您不必重新定位文本。你还得考虑保证金。