Problem beim Erstellen eines Menüs
Verfasst: Mittwoch 13. Januar 2010, 12:24
Hallo,
ich versuche gerade meinen Code zur Generierung des GUI etwas "übersichtlicher zu gestallten (die Anregung dazu habe ich aus WxPython in Action), aber bekomme immer folgenden Fehler:
"Unhandled Value Error - too many values to unpack"
Das Problem tritt in Zeile 58 auf, aber ich komme nicht dahinter, was falsch ist. Hier ein Teil des Programms:
Danke für Eure Hilfe,
Sebi
ich versuche gerade meinen Code zur Generierung des GUI etwas "übersichtlicher zu gestallten (die Anregung dazu habe ich aus WxPython in Action), aber bekomme immer folgenden Fehler:
"Unhandled Value Error - too many values to unpack"
Das Problem tritt in Zeile 58 auf, aber ich komme nicht dahinter, was falsch ist. Hier ein Teil des Programms:
Code: Alles auswählen
def menuData(self):
return (("File",
("Save As...", "", self.OnSaveAs, wx.ITEM_NORMAL),
("", "", ""),
("Quit", "", self.OnQuit, wx.ITEM_NORMAL)),
("Dyes",
("Load Dye Absorption", "", self.OnLoadAbs, wx.ITEM_NORMAL),
("Load Dye Emission", "", self.OnLoadFlu, wx.ITEM_NORMAL),
("", "", ""),
("Delete last Absorption", "", self.OnDelAbs, wx.ITEM_NORMAL),
("Delete last Emission", "", self.OnDelAbs, wx.ITEM_NORMAL)),
("Filter",
("Load Excitation Filter", "", self.OnLoadEx, wx.ITEM_NORMAL),
("Load Dichroic Mirror", "", self.OnLoadDi, wx.ITEM_NORMAL),
("Load Emission Filter", "", self.OnLoadEm, wx.ITEM_NORMAL),
("", "", ""),
("Delete last Excitation Filter", "", self.OnDelEx, wx.ITEM_NORMAL),
("Delete last Dichroic Mirror", "", self.OnDelDi, wx.ITEM_NORMAL),
("Delete Last Emission Filter", "", self.OnDelEm, wx.ITEM_NORMAL)),
("Light Source",
("Load Light Source", "", self.OnLoadLs, wx.ITEM_NORMAL),
("", "", ""),
("Delete last Light Source", "", self.OnDelLs, wx.ITEM_NORMAL)),
("Laser",
("405nm", "", self.OnShow405, wx.ITEM_CHECK),
("445nm", "", self.OnShow445, wx.ITEM_CHECK),
("473nm", "", self.OnShow473, wx.ITEM_CHECK),
("488nm", "", self.OnShow488, wx.ITEM_CHECK),
("491nm", "", self.OnShow491, wx.ITEM_CHECK),
("515nm", "", self.OnShow515, wx.ITEM_CHECK),
("532nm", "", self.OnShow532, wx.ITEM_CHECK),
("561nm", "", self.OnShow561, wx.ITEM_CHECK),
("594nm", "", self.OnShow594, wx.ITEM_CHECK),
("640nm", "", self.OnShow640, wx.ITEM_CHECK),
("", "", ""),
("H2O Raman Lines 405nm", "", self.OnShowRaman405, wx.ITEM_CHECK),
("H2O Raman Lines 445nm", "", self.OnShowRaman445, wx.ITEM_CHECK),
("H2O Raman Lines 473nm", "", self.OnShowRaman473, wx.ITEM_CHECK),
("H2O Raman Lines 488nm", "", self.OnShowRaman488, wx.ITEM_CHECK),
("H2O Raman Lines 491nm", "", self.OnShowRaman491, wx.ITEM_CHECK),
("H2O Raman Lines 515nm", "", self.OnShowRaman515, wx.ITEM_CHECK),
("H2O Raman Lines 532nm", "", self.OnShowRaman532, wx.ITEM_CHECK),
("H2O Raman Lines 561nm", "", self.OnShowRaman561, wx.ITEM_CHECK),
("H2O Raman Lines 594nm", "", self.OnShowRaman594, wx.ITEM_CHECK),
("H2O Raman Lines 640nm", "", self.OnShowRaman640, wx.ITEM_CHECK)))
def createMenuBar(self):
menuBar = wx.MenuBar()
for eachMenuData in self.menuData():
menuLabel = eachMenuData[0]
menuItems = eachMenuData[1]
menuBar.Append(self.createMenu(menuItems), menuLabel)
self.SetMenuBar(menuBar)
def createMenu(self, menuData):
menu = wx.Menu()
for eachLabel, eachStatus, eachHandler, eachKind in menuData:
if not eachLabel:
menu.AppendSeparator()
continue
menuItem = menu.Append(-1, eachLabel, eachStatus, eachKind)
self.Bind(wx.EVT_MENU, eachHandler, menuItem)
return menu
Sebi