【问题标题】:Tkinter: Resizing scrollbar without adjusting window sizeTkinter:在不调整窗口大小的情况下调整滚动条的大小
【发布时间】:2018-05-11 09:02:11
【问题描述】:

我目前在同一层级上有一个滚动条和一个画布。在画布中,有一个使用画布的 create_window 方法创建的框架。

我有一个在配置画布时调用的绑定,它将调整滚动区域的大小以适合 bbox("all")。它可以工作,但在调整整个窗口大小时(例如,如果我向画布添加更多现在不在其可见区域中的小部件,我必须调整窗口大小才能更改画布' 滚动区域)。

理想情况下,只要将新小部件添加到画布的不可见位置(例如,它不在屏幕上),滚动区域就会发生变化。我目前做错了什么?任何建议表示赞赏!

【问题讨论】:

标签: python tkinter scrollbar


【解决方案1】:

如果我正确地理解了您的想法(您确实需要在调试问题中包含Minimal, Complete, Verifiable Example!),您仅在收到<Configure> 事件时才重新计算滚动区域。这只在小部件改变大小时触发 - 并且在 Canvas 上调用 .create_window() 肯定不会改变它的大小。最简单的解决方案可能是每次向其添加小部件时自己显式地重新计算滚动区域(据我所知,此操作不会触发任何事件)。您可能需要先调用.update_idletasks(),让新添加的小部件有机会计算自己的大小。

【讨论】:

    【解决方案2】:

    您需要对内部框架的<Configure> 事件进行绑定,以同时重置scrollregion

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 2013-07-10
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      相关资源
      最近更新 更多