Python 如何设置文本小部件的最大字符宽度?

Python 如何设置文本小部件的最大字符宽度?,python,text,fonts,width,tkinter,Python,Text,Fonts,Width,Tkinter,我注意到Tkinter文本小部件的宽度参数是字符 是否可以为文本小部件设置最大字符宽度 您可以通过绑定到键、按键或按键释放事件来完成此操作。但我看到的每一个实现都是脆弱的。如果您可以使用条目小部件而不是文本小部件,请看一看 似乎使用起来非常简单(为了简洁起见,我不包括ValidatingEntry和maxlenghtry类): 小部件不直接支持您要做的事情。你几乎可以通过使用两个技巧达到目的。例如,您可以将wrap属性设置为在单词或字符边界处换行,然后确保小部件的宽度不超过80个字符(这需要适当

我注意到Tkinter文本小部件的宽度参数是字符


是否可以为文本小部件设置最大字符宽度

您可以通过绑定到
按键
按键释放
事件来完成此操作。但我看到的每一个实现都是脆弱的。如果您可以使用
条目
小部件而不是
文本
小部件,请看一看

似乎使用起来非常简单(为了简洁起见,我不包括
ValidatingEntry
maxlenghtry
类):


小部件不直接支持您要做的事情。你几乎可以通过使用两个技巧达到目的。例如,您可以将
wrap
属性设置为在单词或字符边界处换行,然后确保小部件的宽度不超过80个字符(这需要适当地使用pack/grid/place选项)

这种技术适用于固定宽度字体,但对于可变宽度字体,它并不总是以80个字符换行。这是因为当您将宽度设置为80个字符时,实际上是基于平均字符宽度的80倍将其设置为特定的像素宽度(具体地说,是我上次选中的0(零)字符)


当然,您可以通过监视文本的插入和删除并自行处理包装来强制将其包装为80个字符,但这通常是不值得的。

您的问题不清楚。是否要阻止用户调整包含文本小部件的窗口的大小?或者您希望小部件内的文本限制为特定大小?我希望小部件内的文本限制为特定大小。说80个字符宽。
from Tkinter import *

root = Tk()
entry = MaxLengthEntry(root, maxlength=10)
entry.pack(side=LEFT)
root.mainloop()