我正在尝试将wxpython2.8应用程序迁移到新的wxpython4
我面临的一个问题是:
我们有一个框架,一个笔记本里面有十几个面板,有些面板本身就有笔记本,设置所有这些面板需要相当长的时间。由于大多数用户只使用面板的一个子集,因此我们将所有面板初始化为空面板,然后,当用户单击选项卡时,他必须等待很短的时间,而所有元素都放置在面板上
在wx2.8中,这没有问题,当用户单击其中一个选项卡时,整个应用程序停止响应。初始化面板并完成布局后,面板将显示给用户
然而,与新的wx4,新的面板得到可见的立即和用户可以“观看”面板建设,并看到布局转移东西来回
所以我的问题是:
是否有任何方法可以有效地阻止WX应用程序更新/绘制任何内容,直到构建面板完成
“虚拟面板”代码:
class MyPanel(wx.Panel)
def _createIfNotCreated(self):
if self.is_created:
return
self.makeComponents()
self.layoutComponents()
self.is_created=1
def notifyDisplay(self):
self._createIfNotCreated()
self.refresh()
def makeComponents(self):
self._t = StaticText(self, ...)
[... lots of text, views, etc]
def layoutComponents(self):
sizer = BoxSizer(...)
sizer.Add(...)
[... etc...]
self.setSizer(sizer)
self.setAutoLayout(1)
sizer.fitSizer(self)
目前没有回答
相关问题 更多 >
编程相关推荐