曾经存在于wxPython 2中
self.MakeModal(True)
但不是凤凰城。
我如何展示Modal?
我不想使用wx.Dialog
,因为我需要添加状态栏。
答案 0 :(得分:2)
我使用的一个很好的解决方法是将样式标志wx.FRAME_FLOAT_ON_PARENT
添加到框架并通过frame.GetParent().Disable()
禁用父窗口。然后将类似模态的框架绑定到EVT_CLOSE
并通过frame.GetParent().Enable()
重新启用父窗口。
------更新-----
Robin Dunn的建议是一种更适合模式化框架的方法。 从wx phoenix migration guide开始,将其添加到Frame类
def MakeModal(self, modal=True):
if modal and not hasattr(self, '_disabler'):
self._disabler = wx.WindowDisabler(self)
if not modal and hasattr(self, '_disabler'):
del self._disabler