Zwei 'MenuList' in einem Screen
-
-
Hi,
das ist eigentlich ganz einfach (achtung unvollständiger Beispielcode):
Python
Alles anzeigendef __init_(self, session): Screen.__init__(self, session) self.focusPages = True def changeFocus(self): self.focusPages = not self.focusPages self["wPagesList"].selectionEnabled(self.focusPages) self["entriesList"].selectionEnabled(not self.focusPages) def up(self): if self.focusPages: self["wPagesList"].up() else: self["entrieslist"].up()
focusPages setzt du dann für die entsprechend andere Taste um.
Ich empfehle dir beim legen des Focus in der Liste die gerad jeweils nicht den Focus hat die Methode MenuList.selectionEnabled(False) zu nutzen (und für die aktuell aktive Liste natürlich mit True wieder zu aktivieren).Dann kann der Nutzer sofort erkennen in welcher Liste sich was bewegt wenn er eine taste drückt
Falls du wissen möchtest welche Methoden so eine MenuList bietet kannst du das hier nachlesen: http://e2devel.com/apidoc/enig…MenuList_1_1MenuList.html -
focusPages setzt du dann für die entsprechend andere Taste um.
Ich empfehle dir beim legen des Focus in der Liste die gerad jeweils nicht den Focus hat die Methode MenuList.selectionEnabled(False) zu nutzen (und für die aktuell aktive Liste natürlich mit True wieder zu aktivieren).
Danke das funktioniert problemlosDoch leider die Navigation bleibt bei der ersten MenuList
Habe folgendes probiert:
und hier meine Actionmap:
Codeself["testActionMap"] = ActionMap(["ListboxActions", "ColorActions"], { "green":self.toggleList, "moveUp": self.Up, }, -1)
Wenn ich die Taste 'up' drücke, sollte eigentlich die Funktion self.Up gerufen werden und genau hier ist das Problem. Die Funktion self.Up wird überhaupt nicht gerufen
-
heißt deine Variable wirklich self.Pagesfocus?
Im Beispiel heißt die ja self.focusPagesergänz doch mal deine Up(self) methode wie folgt:
Codedef Up(self): print "[xyz].Up, focus is %s" %self.Pagesfocus if self.Pagesfocus: self["wPagesList"].up() else: self["entrieslist"].up()
dann kannst du enigma2 auf der Konsole starten (via telnet/ssh anmelden, dann: init 5 dann: enigma2 zurück zu normal geht es dann mit init 3) und dir die Ausgabe ansehen.
-
[gelöst] Danke für die Unterstützung
dann kannst du enigma2 auf der Konsole starten (via telnet/ssh anmelden, dann: init 5 dann: enigma2 zurück zu normal geht es dann mit init 3) und dir die Ausgabe ansehen.
Das habe ich getan(ich benutze e2log.log...ist irgendwie komfortabler ). Die Funktion self.Up wurde wirklich nicht gerufen.Das Problem war in der Actionmap, 'ListboxActions' musste duch 'WizardActions' ersetzt werden. So sieht meine Actionmap jetzt:
Codeself["testActionMap"] = ActionMap(["WizardActions", "ColorActions"], { "green":self.toggleList, "up": self.Up, }, -1)
Habe noch 2 kurze Fragen(ich weiß nicht ob ich dafür einen neuen Thread öffnen soll):
1. Welche Bedeutung hat die '-1' am Ende der Actionmap ?
2. Gibt es einen Möglichkeit, die 'backgroundColorSelected' Eigenschaft einer MenuList dynamisch zu ändern, z.B von #221122 auf #AAAAAA ohne die Plugin neustarten zu müssen?