wxPython:如何将一个面板放在另一个面板上

时间:2011-08-18 20:17:08

标签: python wxpython wxwidgets panel sizer

这是关于wxPython。

我希望有2个小组将一个放在另一个上:
PanelBG应该是某种“背景”,它有自己的GridBagSizer,带子面板,StaticTexts等;
PanelFG应该是“前景”面板,也有自己的GridBagSizer,带有一些StaticTexts,Buttons ......但是透明背景,PanelBGPanelFG所在的地方都可以看到{{1}}放置小工具。

我需要两个面板伸展到框架的所有边,即使在调整窗口大小时,虽然从不改变倒数比例,这就是为什么我不确定是否有办法使用绝对定位。

如果您想知道,我不想使用单个Panel的原因是合并2个GridBoxSizer会要求我在sizer中放置更多的单元格,因为前景和背景的行和列不要总是很重合,我应该将它们分成许多单元格,网格尺寸增长到数百** 2 由于我想放在前台的内容需要经常更新和刷新,这需要每次重绘所有单元格,这需要10-20秒才能完成操作(测试)。仅更新前景只需要几分之一秒。

谢谢!

2 个答案:

答案 0 :(得分:1)

这至少可以部分地改变方向,但是可能值得研究一下你有哪些其他渲染选项。

特别是,我正在考虑wxWebKit(http://wxwebkit.kosoftworks.com/),它可以让你使用WebKit浏览器渲染引擎进行分层等。我不确定它是否处于提供您所需的一切的阶段,因为我实际上并未使用它,但即使它不起作用,也可能是一种值得尝试的方法 - 使用HTML / CSS作为部分显示,同时将整个包装在wxPython应用程序中。

答案 1 :(得分:0)

据我了解,这是一个包含矩形的日历,用于包含日期事件的日子。

简单的做法是使用wxGrid,包含七列和四行或五行来表示月份。然后,您可以将事件放入网格单元格中以获取正确的日期。 wxGrid小部件将负责正确刷新所有内容的细节。

使用wxGrid你可能会失去对确切外观的一点控制,虽然wxGrid非常灵活,并且一旦你学到很多方法就会很丰富,但是你可以节省自己不得不编写大量需要大量调试工作的代码。