【发布时间】:2018-05-22 03:09:21
【问题描述】:
我想创建一个网格布局,用一个填充第一行的网格,直到它用完窗口中的空间,并将项目动态移动到下面的行(如文本换行)。随着窗口宽度的调整,网格也会调整以适应。不需要调整框的大小。我打算保持每个小盒子的大小,但改变布局放置每个盒子的位置。
我想通过测量框架的宽度可以实现此功能,如果(框数)*(每个框的宽度)超过宽度,则移至下一行。我只是想知道是否有一种我不理解的更好的内置方法。
如果以上是唯一的选择,那么更新它的最佳方法是什么?我是否必须在窗口调整大小或其他方面设置事件?看来我不应该重新设计布局管理器,这就是那种感觉。我只是想检查是否已经内置了类似的功能。网格似乎是一个强大的布局管理器,但我一直找不到那个选项。
下面的图片描述了我想要使用网格布局在单个框架上使用相同的一组 6 个框的行为。
【问题讨论】:
-
这不是 tkinter 的选项。您必须完全按照您提到的去做:监控窗口大小并根据需要重新布局。不需要太多代码。
-
我应该如何监控窗口大小的变化?这样做有什么负面影响吗?如果不推荐(因为它不是内置的),我可以找到不同的解决方案,但如果这样做是相当标准的做法,我肯定可以解决
-
使用“
”事件。
标签: python python-2.7 user-interface tkinter grid-layout