[solved] Valider Une Entrée Dans Une Controllist - Getfocus ?


dracul
 Share

Messages recommandés

Salut tout le monde.

Je suis en train de faire un script là, et l'idée est de récupérer dans un ControlList l'élément sélectionné :

mon approche :

dans OnAction, je vérifie si le contrôle actif (gotFocus()) est bien le ControlList à traiter.

	def onAction(self, a):		if ACTION_SELECT == a:			print "select detected"			if self.getFocus() == self.channelsLst:				print "Channels =)"

mon problème c'est qu'apparemment getFocus ne retourne rien ( j'ai emem essayé un print de getFocus() : rien )

il ne lève pas non plus d'exception pour me dire qu'il n'y a pas de contrôle avec focus ( d'ailleurs j epeux naviguer sans souci et j'ai setté le focus à la liste en hard dans le code : rien n'y fait )

y'autait-il quelque chose que j'aurais raté ?

le focus change bien automatiquement quand on passe d'un contrôle a l'autre, pas besoin de le set manuellement hein ?

j'ai regardé d'autres scripts : aucun n'a de param d'entrée sur getFocus(...) alors que dans la doc : il y en a 2 ( self, évidemment, et Control )

si quelqu'un a une idée .. je suis preneur ;)

merci d'avance et bonne nuit si jamais =)

edit : je vais ajouter ca dans le wiki je crois :)

j'ai tout simplement pas pensé que il ne fallait pas utiliser onAction mais onCommand

def onControl(self, control):

if control == self.maliste:

item = self.maliste.getSelectedItem()

self.message('You selected : ' + maliste.getLabel())

Modifié par dracul
Lien vers le commentaire
Partager sur d'autres sites

j'ai tout simplement pas pensé que il ne fallait pas utiliser onAction mais onCommand

onCommand onControl

j'ai tout simplement pas pensé que il ne fallait pas utiliser onAction mais onCommand

onCommand onControl

il existe en fait le onControl qui va être appelé pour chaque control manipulé (action sur un bouton ou sur un élément de liste)

et il existe le onAction qui lui va être appelé pour chaque action du pad ou de la télécommande.

Pour les 'tips and tricks' on peut appeler directement un onControl en lui passant en paramètre un control

bouton=xbmcgui.controlButton(x,y,w,h...)self.onControl(bouton) #ceci va simuler une action sur le bouton 

On peut également simuler une action sur des boutons du pad. Ne me demandez pas à quoi ca peut servir mais ca m'a déjà servi !

Lien vers le commentaire
Partager sur d'autres sites

oui, onControl, desolé il était tard...

tiens d'ailleurs, la doc a pas été mise a jour il n'y a que onAcion pas onControl sauf erreur...

merci pour ces précisions

mon script est fonctionnel à présent : plus qu'à améliorer la cosmétique en y appliquant des jolies skins et pour la suite, j'ai encore des idées.

très sympa tout ça ! j'aime bien ce python sur XboX =)

moi en fait mon "erreur" c'est que comme la doc était pas a jour et que seul onAction était documenté j'y sius allé par l'approche :L je vois qu'il y a une action d'exécutée, je regarde sur quel control ( getFocus ) et je le traite ensuite... mais vu qu'il y a onControl, tout est + simple !! et ca marche !!

Modifié par dracul
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share