Seite 1 von 1

Menu Items einbetten???

Verfasst: Dienstag 22. August 2006, 13:29
von $uper||man
Hallo,

Ich bin wie man an meinen bisherigen Posts sehen kann neu hier und auch ein Anfänger in sachen Python :)

Nun zu mein Problem ich habe mir schon eine MenuBar mit dem Menü Datei erstellt und wollte dem MenuItem "Speichern..." einbetten. Ich weiß jedoch nicht wie! In dem Tutorial wird es leider nicht gezeigt zumindest kann ich nichts daraus schließen mit meinen mageren Englisch kenntnissen ^^

Habe die Suche natürlich benutzt, jedoch habe ich nichts nützliches im Forum gefunden vielleicht nur falsch gesucht, habe einfach in der suche Menu eingegeben und unter dem Forum wxPython geschaut ;)

Und nur eine Frage am Rande gibt es für den Code auch eine kürzere Version:

Code: Alles auswählen

MenuDateiNew = wx.MenuItem(MenuDatei, 101, 'Neu...', 'Neue LyricList erstellen')
MenuDateiNew.SetBitmap(wx.Image('glymph/menu/symNew.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap())
MenuDatei.AppendItem(MenuDateiNew)
Ansonsten schonmal recht Herzlichen dank für die Hilfe :D

MfG $uper||man

Re: Menu Items einbetten???

Verfasst: Dienstag 22. August 2006, 13:36
von Francesco
Hallo, wenn ich mir das Beispiel ansehe (um ein vollständiges zu haben):

Code: Alles auswählen

#Editor window
#!/usr/bin/python

# menu1.py

import wx

class MyMenu(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(200, 150))

        menubar = wx.MenuBar()

        file = wx.Menu()
        edit = wx.Menu()
        help = wx.Menu()

        file.Append(101, '&Open', 'Open a new document')
        file.Append(102, '&Save', 'Save the document')
        file.AppendSeparator()
        quit = wx.MenuItem(file, 105, '&Quit\tCtrl+Q', 'Quit the Application')
        file.AppendItem(quit)

        menubar.Append(file, '&File')
        menubar.Append(edit, '&Edit')
        menubar.Append(help, '&Help')

        self.SetMenuBar(menubar)
        self.CreateStatusBar()

class MyApp(wx.App):
    def OnInit(self):
        frame = MyMenu(None, -1, 'menu1.py')
        frame.Show(True)
        return True

app = MyApp(0)
app.MainLoop()
Was ist genau unklar?

Verfasst: Dienstag 22. August 2006, 13:45
von $uper||man
Hallo,

Daran ist nichts Unklar das habe ich schon alles Kapiert

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
#-----------------------------------------------
# LyricList ist ein Programm um den Text (Lyric)
# von Music zum Nachsingen darzustellen.
#
# Datum: 22.08.2006
# Entwickler: $uper||man
#-----------------------------------------------
import wx

#>> Hauptframe und MenuBar
class HauptFrame(wx.Frame):
    """ Hauptframe & Menu """

    def __init__(self, Parent, id, Title):
        """ Leeren Frame darstellen. """

        wx.Frame.__init__(self, Parent, id, Title,
                          pos = (150,150),
                          size = (350,350))

        #>> MenuBar Objekt erstellen.
        MenuBar = wx.MenuBar()

        #>> Menü deklarieren/definieren.
        MenuDatei = wx.Menu()

        #>> Menu Datei...
        MenuDateiNew = wx.MenuItem(MenuDatei, 101, 'Neu...', 'Neue LyricList erstellen')
        MenuDateiNew.SetBitmap(wx.Image('glymph/menu/symNew.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap())
        MenuDatei.AppendItem(MenuDateiNew)
	MenuDatei.AppendSeparator()

        MenuDateiExit = wx.MenuItem(MenuDatei, 105, 'Beenden', 'Das Programm Beenden')
        MenuDateiExit.SetBitmap(wx.Image('glymph/menu/symExit.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap())
        MenuDatei.AppendItem(MenuDateiExit)
    

        #>> Funktionen der Menü Items festlegen.
        self.Bind(wx.EVT_MENU, self.FrameBeenden, id = 105)

        #>> Menü wie folgt sortieren.
        MenuBar.Append(MenuDatei, "Datei")
        self.SetMenuBar(MenuBar)

        #>> Statusbar erstellen.
        self.CreateStatusBar()

    def FrameBeenden(self, evt):
        self.Close()

#----------------------------------------------------------------------------
class LyricList(wx.App):
    """ Starten der LyricList Applikation. """

    def OnInit(self):
        Frame = HauptFrame(None, -1, "Willkommen Gast! - LyricList")
        Frame.Centre()
        Frame.Show(True)

        return True


#----------------------------------------------------------------------------

def main():
    _app = LyricList(0)
    _app.MainLoop()


if __name__ == "__main__":
    main()

Ich wollte eigentlich nur wissen wie man z.B. den Menüpunkt "Neu..." Einbettet (So grau hinterlegt das man ihn nicht mehr auswählen kann)

Mehr nicht! :D

MfG $uper||man

Verfasst: Dienstag 22. August 2006, 13:54
von CM
Hoi,

mit einItem.Enable(False). Sie auch http://www.python-forum.de/topic-6891.html

Mir war auch nicht klar, was mit "einbetten" gemeint sein könnte bis Du es genau geschrieben hast. Vielleicht magst Du das bei der nächsten Anfrage berücksichtigen? ;-)

Gruß,
Christian

Verfasst: Dienstag 22. August 2006, 13:58
von $uper||man
hehe Danke :)

In HTML nennt man das auch einbetten wenn ein Textfeld nicht beschreibar ist ergo dachte ich das man das auch so für die Menü Items nennt :D

Aber beim nächsten mal beschreibe ich es genauer ^^

MfG $uper||man

Verfasst: Dienstag 22. August 2006, 14:01
von Francesco
$uper||man hat geschrieben: Ich wollte eigentlich nur wissen wie man z.B. den Menüpunkt "Neu..." Einbettet (So grau hinterlegt das man ihn nicht mehr auswählen kann)

Mehr nicht! :D

MfG $uper||man
Asso! :)