Hide/Show MenuBar

Plattformunabhängige GUIs mit wxWidgets.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Hide/Show MenuBar

Beitragvon Zap » Freitag 7. März 2008, 08:47

Hallo zusammen, ich suche jetzt schon ne ganze Weile aber finde leider keine Lösung.
Und zwar möchte ich in einem Frame die Möglichkeit haben das ich die
MenuBar verstecken und anschließende wiederherstellen kann. (so wie man es von Mediaplayern kennt)

Die Methode Hide() bringt zwar den erwarteten Rückgabewert, bringt aber leider kein Ergebnis.
Hat vielleicht einer von euch eine Idee ?

Code: Alles auswählen

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Menu Hide Test")
       
        menubar = wx.MenuBar()
        menubar.Append(wx.Menu() , "&Datei")
        self.SetMenuBar(menubar)
        print self.MenuBar.Shown
        print self.MenuBar.Hide()       
        print self.MenuBar.Shown
        self.Update()

def main():
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Center()
    frame.Show()
    app.MainLoop()
   
if __name__ == "__main__":
    main()
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Hide/Show MenuBar

Beitragvon gerold » Freitag 7. März 2008, 09:04

Hallo Zap!

Code: Alles auswählen

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Menu Hide Test")
       
        self.menubar = wx.MenuBar()
        self.menubar.Append(wx.Menu() , "&Datei")
        self.SetMenuBar(self.menubar)
       
        self.Bind(wx.EVT_LEFT_DCLICK, self.toggle_menubar)
   
   
    def toggle_menubar(self, event):
        if self.menubar.IsShown():
            self.menubar.Hide()
            self.SetMenuBar(None)
        else:
            self.menubar.Show()
            self.SetMenuBar(self.menubar)


def main():
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Center()
    frame.Show()
    app.MainLoop()
   
if __name__ == "__main__":
    main()

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Freitag 7. März 2008, 09:16

Ahhhhhh Danke :D

Hatte mal kurz den Versuch gewagt SetMenuBar(0) zu testen und dabei einen TypeError bekommen, dachte somit das ich die Idee wohl knicken kann.
Sehr schön, wenn wir uns mal begegnen sollten Gerold kriegste n Bier von mir aus! ;)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder