【发布时间】:2011-08-18 20:17:08
【问题描述】:
这是关于 wxPython 的。
我希望有 2 个面板彼此重叠:PanelBG 应该是某种“背景”,具有自己的 GridBagSizer 和子面板、StaticTexts 等;PanelFG应该是“前景”面板,还有它自己的 GridBagSizer 和一些静态文本、按钮......但是一个透明的背景,这样PanelBG 在PanelFG 不放置小部件的任何地方都可见。
我需要两个面板都拉伸到框架的所有边,即使在调整窗口大小时,虽然从不改变倒数比例,这就是为什么我不确定是否有使用绝对定位的方法。
如果您想知道,我不想使用单个 Panel 的原因是合并 2 个 GridBoxSizer 需要我在 sizer 中放置更多单元格,因为前景和背景的行和列不'并不总是一致的,我应该将它们分成许多单元格,网格尺寸增长到数百**2。
由于我要放置在前台的内容需要经常更新和刷新,因此每次都需要重绘所有单元格,这需要 10 - 20 秒才能完成操作(已测试)。只更新前台只需要百分之一秒。
谢谢!
【问题讨论】:
-
你为什么不创建另一个一分为二的sizer,然后把两个sizer分别放在一个?
-
天哪,我完全在尝试!我真的没有想到这种可能性,我会告诉你我是否可以让它工作
-
等等等等,如何让两个child sizer重叠?如果我使用 BoxSizer,它们仍然会垂直或水平堆叠......你能给我举个例子吗?
-
抱歉,我很难理解您的目标是什么。两个网格应该在彼此上方的 z 平面上?他们并不总是排队?我无法想象这对于用户来说不会特别令人困惑。你能给出最终结果的图纸或更多解释吗?
-
没错,z 平面在彼此之上。该应用程序是一个显示一天中事件的日历:背景在左侧显示点钟小时作为标签,在右侧显示显示 15 分钟间隔的彩色水平线。前景显示事件矩形,它可以根据同时发生的其他事件的数量水平跨越,根据事件本身的持续时间垂直跨越。这是一个日历,就像其他应用程序中的许多日历一样,但我会尝试提供一些图形表示。
标签: python wxpython wxwidgets panel sizer