Tkinter如何检测文本窗口小部件内容是否太长?

时间:2019-04-07 01:44:35

标签: python user-interface tkinter

我只需要一些可以判断1行文本窗口小部件中内容的内容是否太长,从而需要水平滚动条的

我搜索了其他人发布的问题,并找到了垂直滚动条的解决方案,但遗憾的是,它与水平滚动条不能一样精确。

我的垂直解决方案:

if self.verse_box.cget('height') < int(self.verse_box.index('end-1c').split('.')[0]):
    print "Too many lines"

但是,如果我像这样切换它,它将不起作用,因为某些字符较小,因此可能更适合该行:

if self.verse_box.cget('width') < int(self.tags_box.index('end-1c').split('.')[1]):
    print "This one line is too long"

任何和所有建议将不胜感激,谢谢! ^-^

1 个答案:

答案 0 :(得分:2)

在任何支持滚动的小部件上,您可以调用不带参数的.xview().yview()方法来获取沿该轴的可见区域的当前开始/结束分数。如果全部内容已经可见,则为元组(0.0, 1.0)。如果返回的值是其他任何值,则需要滚动条才能查看全部内容。