Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Dreamboard. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 18. Januar 2011, 20:45

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)? ?(


Quellcode

1
2
3
4
<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" />
..............................

2

Mittwoch, 19. Januar 2011, 10:18

Hi,

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

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def __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/enigma2/db/d9c…_1MenuList.html
mfg ,
Reichi


3

Mittwoch, 19. Januar 2011, 13:01

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 :thumbsup:

Doch leider die Navigation bleibt bei der ersten MenuList :(

Habe folgendes probiert:

Quellcode

1
2
3
4
5
def Up(self):
	if self.Pagesfocus:
		self["wPagesList"].up()
	else:
		self["entrieslist"].up()


und hier meine Actionmap:

Quellcode

1
2
3
4
5
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 ?(

4

Mittwoch, 19. Januar 2011, 13:22

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:

Quellcode

1
2
3
4
5
6
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.
mfg ,
Reichi


5

Mittwoch, 19. Januar 2011, 13:46

[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:

Quellcode

1
2
3
4
5
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?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »mfsmdvb« (19. Januar 2011, 13:55)