Gestion Des Xbmcgui.window


kochka
 Share

Messages recommandés

Plop tout le monde :)

Comment fonctionne la récupération des fenêtres non détruites ? Le fait que cette possibilité se trouve dans le constructeur d'une xbmcgui.window me laisse un peu perplexe.

Voila ce que je cherche a faire :

Pour l'instant j'ai 3 classes :

- videoList : Classe qui parse des pages web et met a dispo des methodes pour récupérer les infos necessaires

- mainWindow(xbmcgui.Window) : Page d'acceuil (fenêtre mère)

- videoWindow(xbmcgui.Window) : Liste des videos dispos (fenêtre fille)

1 - mainWindow va donc créer des instances de videoWindow pour chaque menu disponible dans la page d'acceuil

2 - Chaque instance de videoWindow crée une instance de videoList correspondant à la page selectionnée.

La re-instanciation des videoWindow a chaque ouverture de menu n'est pas géniale puisqu'elle déclenche des parsings de page web.

J'ai cru comprendre dans la doc de l'api que je pouvais ouvrir une page non détruite en passant des winId. Je me dis donc que c'est cool et que le vais stocker la liste des fenêtres filles ouvertes dans mainWindow.

Seulement je comprend pas très bien la suite...

Je dois faire un truc du genre : ?

class videoWindow(xbmcgui.Window):  """ Video Window Class inheritate Xbmc window """  def __init__(self, dicId, winId=None):	xbmcgui.Window.__init__(self, winId)	if not winId:	  ... Code d'init de ma fenêtre ...	  self.videoList = videoList(dicId)	  ... Code d'init de ma fenêtre ...

ou je pourrais aussi très bien stocker mes instances de videoWindow dans mainWindow...

Bon j'ai pas tester car j'ai pas de Xbox sous la main mais si quelqu'un a des eclaircissement, je suis preneur :D

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

Salut

Tu m'as l'air de bien meiux maitriser la programmation que moi :D

La fonction d'identification des "window' est très buggée. Ne compte pas là dessus pour faire ce que tu souhaites.

Sinon, il faut considérer une classe window comme une 'couche' graphique qui vient se superposer aux autres précédentes. quand tu la quitte, tu revient à celle d'avant mais les infos ne sont pas "redessiner" la 'window' réapparait uniquement parceque celle du dessus ne la masque plus.

Je ne sais pas si ca t'aide...

Lien vers le commentaire
Partager sur d'autres sites

Merci de ta reponse :)

Je sais pas si il n'y a que l'identification des fenêtre qui est buggé :) J'ai freezé je sais pas combien de fois la Xbox avec des trucs qui marche parfaitement sur mon PC...

J'ai vu que tu avais commencé une ébauche de gestion des fenêtres dans "myCine", tu comptais t'y prendre comment ?

J'ai pas le temps maintenant mais je vais faire des tests des possibilités ce We.

Tcho ++

Lien vers le commentaire
Partager sur d'autres sites

pour mycine je voulais remplir une liste de toutes les fenêtres ouvertes. Ensuite, en mappant un bouton, je voulait afficher un controlList pour choisir le retour vers une des fiches ouvertes. (un espèce de système d'onglets !)

Pour tes bugs, normalement les choses de bases passent correctement sur xbox de la même manière que sur PC.

Y'a un truc un peu usant, c'est le coup du système de fichiers.

Sur PC, un os.getcwd() renvoi un chemin du genre :

E:\dossier\sousdossier

mais sur xbox la même commande renvoi je crois :

E:\dossier\sousdossier;

il faut donc supprimer le dernier caractère :

os.getcwd()[:-1]

De plus, le python de XBMC ne gère que les noms de chemin absolu

Si tu écris dans XBMC :

open('monfichier.ext')

ca plante

si tu écris :

open('E:\dossier\sousdossier\monfichier.ext')

là ca marche

Y'a quelques différences encore peut être, mais là elles me viennent pas en tête

PM moi si tu veux me poser des questions directement sur msn

a+

Lien vers le commentaire
Partager sur d'autres sites

Merci pour toutes ces infos :)

Le script est terminé, reste plus que le graphisme à faire. J'ai finalement abandonné l'idée de conserver les instances de fenêtres. J'ai écrit à la place une classe statique pour mettre en cache les instances des objets qui font les parsing.

Mes freeze étranges venait du fait que j'essayais de passer des params au constructeur de mes classes qui héritent de xbmcgui.Window sans nommer les paramètres. Je comprend pas pourquoi ca plante la console d'ailleurs ???

Je te PM pour MSN, ca sera plus pratique si j'ai des questions metaphysiques sur le fonctionnement de l'API ou sur Python :)

Thx ++

Modifié par kochka
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