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