Hallo,
ich habe ein Plugin mit einem Config-Screen. Jetzt möchte ich per Menu-Action einen zweiten Screen öffnen mit einer einfachen Liste (2 - 3 Einträge), in der die Listeneinträge mit OK angewählt werden können. Leider crasht es und ich weiß nicht weiter.
Quelltext 1. Screen: (das läuft)
Python
def Plugins(**kwargs):
return [PluginDescriptor(name=_("plugin"), description=_("Tool."), where = PluginDescriptor.WHERE_PLUGINMENU, icon="tool.png", fnc=main)]
def main(session, **kwargs):
#session.open(Options) # 2. Screen --> soll später per Menu-Taste angezeigt werden
session.open(Configuration) # 1. Screen --> Hauptscreen
class Configuration(Screen, ConfigListScreen):
skin = """
<screen name="ConfigScreen" position="center,center" size="560,400" title="setup V%s">
<ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/key_info.png" position="520,0" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/key_menu.png" position="470,0" size="140,40" alphatest="on" />
<widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
<widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
<widget name="config" position="5,50" size="550,360" scrollbarMode="showOnDemand" zPosition="1"/>
</screen>""" % fm_version
def __init__(self, session, args = 0):
Screen.__init__(self, session)
self["key_red"] = StaticText(_("Cancel"))
self["key_green"] = StaticText(_("OK"))
self["setupActions"] = ActionMap(["EPGSelectActions", "SetupActions", "ColorActions", "MenuActions"],
{
"green": self.save,
...
Alles anzeigen
Jetzt der Quelltext des 2. Screens: (läuft nicht)
Python
class Options(Screen):
skin = """
<screen name="OptionsScreen" position="60,93" zPosition="6" size="610,160" flags="wfNoBorder" >
<widget source="optionslist" render="Listbox" position="10,5" zPosition="7" size="580,150" scrollbarMode="showOnDemand" transparent="1" />
</screen>"""
def __init__(self, session, args = 0):
Screen.__init__(self, session)
self["actions"] = ActionMap(["SetupActions"],
{
"cancel": self.cancel,
"ok": self.apply,
})
self.activeState = False
self.list = []
self.list.append("Test")
self.list.append("Test2")
self["optionslist"] = List(self.list)
def cancel(self):
self.close(False)
def apply(self):
self.close(False)
Alles anzeigen
Wenn ich das ganze jetzt probiere, dann crasht es immer mit:
Code
File "/usr/lib/enigma2/python/Components/Renderer/Listbox.py", line 80, in changed
self.content = self.source.content
AttributeError: 'List' object has no attribute 'content'
Kann mir bitte jemand helfen?