【发布时间】:2018-08-22 22:05:39
【问题描述】:
有没有一种简单的方法可以让 嵌套 框架看起来像一个框架 - 最好使用网格布局管理器?当框架 嵌套时,这相对容易做到(即框架是 same 父窗口小部件的子级 - 请参阅第二张图片)。
问题是(1 像素?)之间出现的分离
帧。消除它,我的问题就消失了。
在第一幅图像中,三个垂直线,即嵌套框架的边缘边界,需要显示为一条线(同样适用于图像底部的水平线)。所需的结果是包含 3 个(子)帧的(父)帧 - 第二个图像。
顺便说一句,所有三个子框架都是作为框架实现的,而不是按钮小部件。
我尝试过使用“padx”(零和负数)、“relief”(设置为 FLAT 等)和边框宽度(设置为 0 和 -1)小部件属性,但没有成功。
我不愿意重新设计应用程序(使用 Canvas 和/或 ttk.Separator)来解决这个小而烦人的问题。并且消除嵌套不是一种可接受的方法(除非绝对没有其他方法)。
有什么建议吗?
【问题讨论】:
-
给我们看minimal reproducible example,这样我们就可以玩了。我猜最简单的解决方案是制作一个从嵌套转换为顺序的函数。
-
完全嵌套是什么意思?除非绝对没有其他办法,否则您不想消除哪种嵌套?
-
Frame A 包含 Frame B,而 Frame B 又包含 Frame C。复杂性是通过将每个框架放置在它自己的(嵌套)函数中来管理的。 “取消嵌套”破坏了这种结构强制执行的模块化/隔离,使代码更难维护(你从一个干净的结构变成一个混乱的结构)。屏幕截图是每个框架中内容的极其简化的版本,这就是为什么易于维护/修改是基本要求的原因(例如,您可以通过将函数调用移动到新父级来将子框架移动到不同的父级)。
标签: python python-3.x tkinter overlay