Zwei 'MenuList' in einem Screen

  • Hallo,


    ich habe einen Screen mit 2 MenuList-Objekte; der Screen ist horizontal verteil.
    Wie kann ich die Selection(Kontrolle) von einer List zur anderen übertragen( z.B beim Drucken auf 'ok' oder 'right' Buttons)? :confused_face:


    Code
    <screen position="%d,%d" size="%d,%d" title="%s" >
    	<widget name="wPagesList" position="0,0" size="%d,%d" scrollbarMode="showOnDemand" />
    	<widget name="entrieslist" position="%d,%d" size="%d,%d" scrollbarMode="showOnDemand" />
    ..............................
    • Offizieller Beitrag

    Hi,


    das ist eigentlich ganz einfach (achtung unvollständiger Beispielcode):




    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 :winking_face:
    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 problemlos :thumbs_up:


    Doch leider die Navigation bleibt bei der ersten MenuList :frowning_face:


    Habe folgendes probiert:

    Code
    def Up(self):
    	if self.Pagesfocus:
    		self["wPagesList"].up()
    	else:
    		self["entrieslist"].up()


    und hier meine Actionmap:

    Code
    self["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 :confused_face:

    • Offizieller Beitrag

    heißt deine Variable wirklich self.Pagesfocus?
    Im Beispiel heißt die ja self.focusPages


    ergänz doch mal deine Up(self) methode wie folgt:


    Code
    def 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 :smiling_face:


    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 :winking_face: ). 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:

    Code
    self["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?

    Einmal editiert, zuletzt von mfsmdvb ()