Hallo,
Ich versuche mich grad in die Anfänge der Plugin Prpgrammierung rein zu fummeln. Ich habe mir nach laaangem Suchen und Probieren dieses Plugin erstellt (das klappt sogar )
from Screens.Screen import Screen
from Components.MenuList import MenuList
from Components.ActionMap import ActionMap
from Screens.MessageBox import MessageBox
from Plugins.Plugin import PluginDescriptor
import subprocess
###########################################################################
class MyMenu(Screen):
skin = """
<screen position="100,100" size="460,880" title="DreamScreenCommander" >
<widget name="myMenu" position="10,10" size="420,880" scrollbarMode="showOnDemand" />
</screen>"""
def __init__(self, session, args = 0):
self.session = session
list = []
list.append((_("HDR Tone Mapping Off"), "1"))
list.append((_("HDR Tone Mapping On"), "2"))
list.append((_("Exit"), "exit"))
Screen.__init__(self, session)
self["myMenu"] = MenuList(list)
self["myActionMap"] = ActionMap(["SetupActions"],
{
"ok": self.go,
"cancel": self.cancel
}, -1)
def go(self):
returnValue = self["myMenu"].l.getCurrentSelection()[1]
print "\n[MyMenu] returnValue: " + returnValue + "\n"
if returnValue is not None:
if returnValue is "1":
subprocess.call('/usr/lib/enigma2/python/Plugins/Extensions/DreamScreenCommander/DreamScreenCLI.py -r 0', shell=True)
elif returnValue is "2":
subprocess.call('/usr/lib/enigma2/python/Plugins/Extensions/DreamScreenCommander/DreamScreenCLI.py -r 1', shell=True)
else:
self.close(None)
def cancel(self):
self.close(None)
###########################################################################
def main(session, **kwargs):
#print "\n[MyMenu] start\n"
session.open(MyMenu)
###########################################################################
def Plugins(**kwargs):
return PluginDescriptor(
name="DreamScreenCommander",
description="Call DreamScreen commands",
where=[ PluginDescriptor.WHERE_EXTENSIONSMENU, PluginDescriptor.WHERE_PLUGINMENU ],
icon="dreamscreen.png",
fnc=main)
Alles anzeigen
Nun würde ich gerne das gern so haben, dass die Liste nur einen Eintrag "HDR Tone Mapping" mit den Auswahloptionen "an" / "aus" anzeigt, so dass ich mit Cursor links/rechts zwischen den Optionen wählen kann (mit Default Vorgabe "aus") und dann mit Taste "grün" das subprocess Skript der Auswahl entsprechend aufrufe. Später sollen noch mehrere Einträge mit vorgegebenen Auswahlmöglichkeiten hinzukommen. Aber wenn ich erstmal ein Beispiel habe, wie das prinzipiell zu machen ist, dann komm ich da schon weiter (oder frag nochmal )
Ich suche seit Stunden nach Beispielen in existierenden Plugins, aber die sind so komplex, dass ich einfach nicht durchsteige.
Kann mir bitte jemand auf die Sprünge helfen, wie man das hinbekommt?
Vielen Dank!
Grüße