如何自动调整窗口大小,滚动条不可滚动,如下图所示?我查看了滚动条小部件的每个成员函数,只有.state()
在启用滚动条时返回空元组,否则包含'disabled'
字符串。所以我一起攻击这个,好吧,不那么漂亮的功能,将高度增加20px,直到'disabled'
中有.state()
。
这是功能:
class ChatUI:
def __init__(self, master, engine):
# ... unrelated code ...
self.geo_split_pattern = re.compile(r'[x+]')
# ... lot of unrelated code ...
def fittofriendlist(self):
# resizes window so all contacts are visible. horrible hack but working
while 'disabled' not in self.friendsscroll.state():
width = self.geo_split_pattern.split(self.master.geometry())[0]
height = self.geo_split_pattern.split(self.master.geometry())[1]
self.master.geometry('{0}x{1}'.format(width, int(height) + 20))
self.master.update()
# ... lot more of unrelated code ...
我想要达到的目标:(以适当的方式)
答案 0 :(得分:0)
关键是不要询问滚动条的高度是什么,而是询问小部件它控制的内容有多少是可见的。您可以调用yview
命令,该命令将返回一个元组,该元组描述了视图中的内容部分。
来自官方的tcl / tk文档:
...每个元素都是0到1之间的实数;他们在一起 描述窗口中可见的垂直跨度。例如, 如果第一个元素是.6而第二个元素是1.0,则最低 画布区域的40%(由-scrollregion选项定义)是 在窗口中可见...