我注意到 Tkinter Text 组件的宽度参数是以字符为单位的。
那么,是否可以为文本部件设置一个最大的字符宽度呢?
那么,是否可以为文本部件设置一个最大的字符宽度呢?
wrap
属性以在单词或字符边界处换行,然后确保小部件永远不会超过80个字符的宽度(这需要适当使用pack/grid/place选项)。您可以通过绑定 Key
、KeyPress
或 KeyRelease
事件来实现此功能。但我见过的每个实现都不太可靠。如果您可以使用 Entry
小部件代替 Text
小部件,可以查看 验证输入小部件。
使用起来非常简单(为了简洁起见,我没有包括 ValidatingEntry
和 MaxLengthEntry
类):
from Tkinter import *
root = Tk()
entry = MaxLengthEntry(root, maxlength=10)
entry.pack(side=LEFT)
root.mainloop()
这个问题对我来说有点不清楚。
如果您想设置文本框的宽度。那么您可以在实例化Text类时设置宽度。默认情况下,宽度以字符为单位。实际像素宽度由文本小部件的默认字体确定。请注意,超出框的限制的字符将导致文本在满足每个字符宽度后向右“翻页”。
chars = 5 # 5 characters wide
Text(parent, width = chars, font = ('Helvetica, 24'))
# change the font family and size to get different sized text boxes
在创建后,您还可以重新定义文本小部件的宽度:
textWidget.configure(width = 5)
如果你想限制文本小部件的输入,我在另一个帖子中写了一个解决方案。
在这里阅读我的回复
如何通过阻止输入的最新字符来限制Python中Tkinter文本小部件的长度?
正如评论中所述,还有其他小部件也可以处理此任务。其中之一是输入小部件。
如果这对你有用,请点赞。如果您对我如何更清晰地传达有意见,请告诉我。