tkinter怎么实现Message显示文字每行长度自动适应鼠标拖动的窗口大小?


sentence="sentence123456799999999999999999999999999999999999"
sentence_display = tk.Message(content,relief="sunken",justify=tk.LEFT,padx=5,text=sentence,textvariable="Display sentence here.",width=200)

下面是message组件运行后的内容

img

下面是我用鼠标拖动窗口后message组件内部文字的显示情况,发现内容并没有随着组件宽度的变化而自动调整,我希望程序能够根据空间宽度自动调整每行文字的长度。请问该怎么做?如果Message不行的话,用Text该怎么做呢?

img

通过绑定Message控件的尺寸改变事件<Configure>,就可以实现了。一般不需要用Text就不用。

import tkinter as tk

def new(event):
    width=sentence_display.winfo_width()
    sentence_display.config(width=width)


a=tk.Tk()
a.geometry('300x200')
 
sentence="sentence123456799999999999999999999999999999999999sentence123456799999999999999999999999999999999999"
sentence_display = tk.Message(a,relief="sunken",justify=tk.LEFT,font='微软雅黑 12',padx=5,text=sentence,textvariable="Display sentence here.",width=200)
sentence_display.pack(fill='x')
sentence_display.bind('<Configure>',new)

a.mainloop()