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

问题描述

| 我注意到Tkinter Text小部件的width参数是字符。 是否可以为文本窗口小部件设置字符的最大宽度?     

解决方法

        您可以通过绑定到
Key
KeyPress
KeyRelease
事件来做到这一点。但是我见过的每一个实现都是片状的。如果可以使用an3ѭ小部件而不是
Text
小部件,请查看“验证条目”小部件。 似乎使用起来非常简单(为简便起见,我不包括
ValidatingEntry
MaxLengthEntry
类):
from Tkinter import *

root = Tk()
entry = MaxLengthEntry(root,maxlength=10)
entry.pack(side=LEFT)
root.mainloop()
    ,        小部件不直接支持您要执行的操作。您可以使用一些技巧来达到目标​​。例如,您可以将“ 8”属性设置为在单词或字符边界处换行,然后确保小部件的宽度不得超过80个字符(这需要适当使用pack / grid / place选项)。 这种技术对于固定宽度的字体会很好,但是对于可变宽度的字体,它并不总是以80个字符换行。这是因为当您将宽度设置为80个字符时,实际上是根据平均字符宽度的80倍(具体来说,我上次检查为0(零)字符)将其设置为特定的像素宽度。 当然,您始终可以通过监视文本的插入和删除并亲自处理换行来强制将换行符换成80个字符,但这通常比值得付出的工作还要多。