5
我已經創建了一個wx.Frame(讓我們稱之爲mainFrame)。這個框架包含一個按鈕,當點擊按鈕時,會創建一個新框架(讓它叫做childFrame)。wxPython幀禁用/啓用?
我想知道如何在childFrame創建時禁用mainFrame並在childFrame被破壞/關閉時再次啓用mainFrame?
Regars,
我已經創建了一個wx.Frame(讓我們稱之爲mainFrame)。這個框架包含一個按鈕,當點擊按鈕時,會創建一個新框架(讓它叫做childFrame)。wxPython幀禁用/啓用?
我想知道如何在childFrame創建時禁用mainFrame並在childFrame被破壞/關閉時再次啓用mainFrame?
Regars,
可能是你不需要另一個框架,但一個模式對話框如
import wx
app = wx.PySimpleApp()
mainFrame = wx.Frame(None, title="Click inside me")
def onMouseUp(event):
dlg = wx.Dialog(mainFrame,title="I am modal, close me first to get to main frame")
dlg.ShowModal()
mainFrame.Bind(wx.EVT_LEFT_UP, onMouseUp)
mainFrame.Show()
app.SetTopWindow(mainFrame)
app.MainLoop()
可能是你想要的東西是這樣的:
import wx
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.NewId(), "Main")
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.button = wx.Button(self, wx.NewId(), "Open a child")
self.sizer.Add(self.button, proportion=0, border=2, flag=wx.ALL)
self.SetSizer(self.sizer)
self.button.Bind(wx.EVT_BUTTON, self.on_button)
self.Layout()
def on_button(self, evt):
frame = ChildFrame(self)
frame.Show(True)
frame.MakeModal(True)
class ChildFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, wx.NewId(), "Child")
self.Bind(wx.EVT_CLOSE, self.on_close)
def on_close(self, evt):
self.MakeModal(False)
evt.Skip()
class MyApp(wx.App):
def OnInit(self):
frame = MainFrame()
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()
WOW,這正是我需要 – 2013-11-30 05:29:02
是啊,我太:) – alwbtc 2014-04-11 06:43:07