frame.Destroy() ?

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Floqqi

Hallo,

ich hab ein Panel, um welches ein Frame gebaut ist:

Code: Alles auswählen

class Frame(wx.Frame):
    def __init__(self, *args, **kwds):
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        width = 400
        height = 200
        self.SetSize((width, height))
        self.SetMinSize((width, height))

        panel = wx.Panel(self, -1)
        all = Panel(panel, -1)
        hbox = wx.BoxSizer()
        hbox.Add(all, 1, wx.EXPAND|wx.ALL, 5)
        panel.SetSizer(hbox)
        self.Show(True)
        
if __name__ == "__main__":
    try:
            app = wx.App()
            Frame(None, -1, u"Test")
            app.MainLoop()
    finally:
        del app
Nun öffnet sich bei einem Klick auf den Button innerhalb des Panels ein wx.Dialog. In diesem Dialog wiederrum klick ich auf einen Button - der soll dazu führen, dass der Dialog und das Frame geschlossen werden. Das mit dem Dialog schließen hab ich schon geschafft mit EndModal(). Nun will ich aber, dass bei dem Klick auf den Button des Dialogs auch noch das Frame (in welchem sich ein Panel befindet) geschlossen wird.
Jemand eine Ahnung wie ich das anstellen könnte?


Grüße :)
Flano
User
Beiträge: 43
Registriert: Sonntag 5. September 2004, 14:13

Hallo Floqqi,

meinst du das:

Code: Alles auswählen

    def OnClose(self, event):
        dlg = wx.MessageDialog(self, 
            "Wirklich beenden?",
            "Confirm!", wx.OK|wx.CANCEL|wx.ICON_QUESTION)
        result = dlg.ShowModal()
        dlg.Destroy()
        if result == wx.ID_OK:
            self.Destroy()
Gruß Flano
Antworten