![]() |
1
10
正如马特所指出的,这一切都与堆放顺序有关。堆叠顺序只是应用程序中小部件的“z坐标”——您可以将其视为除了屏幕上的自然x和y坐标外,还有一个垂直于屏幕平面的轴。所有的小部件都沿着这个轴放置。您在屏幕上实际看到的图像是沿着该轴“展平”所有小部件的结果。在X和Y平面上的任何窗口小部件重叠处,堆叠顺序较高的窗口小部件就是您在该位置看到的。 tk中小部件的默认堆叠顺序由它们的创建顺序决定。它创建的小部件越早,其堆叠顺序就越低——想象屏幕本身处于z坐标零,屏幕上的值越大。创建的第一个小部件的堆叠顺序为零,第二个小部件的堆叠顺序为一,等等。 解决问题的最简单方法就是按正确的顺序创建小部件,但是 如果您已经完全按照所显示的顺序创建小部件,您可以稍后手动更改堆叠顺序,以确保小部件按您想要的顺序堆叠。例如,要再次将蓝色框架置于顶部,可以添加:
这告诉tk更改
当我使用全景窗口小部件时,我倾向于让它管理子部件——对我来说,它在概念上只是一个具有额外行为的框架,而且由于我使用框架将相关的小部件组合在一起,所以我使用全景窗口的方式相同。此策略还巧妙地回避了堆叠顺序的问题,因为它要求您首先创建窗格窗口-您必须这样做,因为在创建小部件之前,您不能创建小部件的子项。因此,我将这样修改您的示例:
对我来说,这使得
|
![]() |
2
3
哇,我已经有一段时间没想到TCL/TK了。谢谢你的记忆之旅。:) 根据这个 link ,同级小部件的默认堆叠顺序是它们的创建顺序,而不是它们的打包顺序。本质上,.top、.bot和.root都是彼此的兄弟,因为它们在小部件层次结构中处于同一级别,即它们都“挂起”在同一个父级(“”在本例中)。我希望如果您将panedwindow命令移到下一行,您也不会看到绿色框。我认为,如果您分别将.top和.bot重命名为.root.top和.root.bot,这可能会解决您看到的问题,因为这将使它们成为.root父级的子级。 希望这有帮助。 |
![]() |
Ubi · 从tkinter中的多个文本框中获取值 7 年前 |
![]() |
njamescouk · tcl返回用户选择的文件名 7 年前 |
![]() |
Nagesh HS · 如何在每次运行后更新TCL文件中的标志位? 7 年前 |
![]() |
Nagesh HS · 如何使用tcl更新文件中的tcl变量值? 7 年前 |
![]() |
Nae · 为什么不鼓励使用多个Tk实例? 7 年前 |
![]() |
Nae · 按下按钮时如何查看菜单? 7 年前 |
![]() |
Jimmy · 如何独立显示多个窗口? 7 年前 |