Un Script De Météo Francaise


alexsolex
 Share

Messages recommandés

Pour ton image, XBMC a systématiquement besoin du chemin complet vers un fichier pour l'ouvrir. Il ne travail pas en chemin relatifs mais en chemin absolu.

Donc si ton image se trouve sur q:\script\script meteo FR\background.png, il va falloir que tu donnes le chemin complet :

class MyClass(xbmcgui.Window):  def __init__(self):    self.addControl(xbmcgui.ControlImage(0,0,800,600, 'q:\\script\\script meteo FR\\background.png'))

Plusieurs choses :

* au sujet de l'image. Tu donnes le chemin complet, c'est bien et c'est ce qu'il faut faire pour que ca fonctionne. Mais voila, si tu fournis ton script à quelqu'un d'autre et qu'il l'installe dans un autre endroit que là ou tu l'as installé, le script sera incapable de retrouver l'image (elle ne sera plus dans le même chemin). Plusieurs possibilités donc, soit tu zip ton travail en mémorisant les chemins et tu dis dans un fichier readme.txt que le script doit être insatllé dans tel répertoire.... Ou alors , tu trouves des commandes python qui t'aideront pour la localisation du script... Là encore je ne t'en dit pas plus

Je te remercie AlexSolex pour tes precieux conseils ,je me suis donc penché sur la recherche dde commandes simples que je comprends qui permettront dafficher les images du script quelque soit son rep dinstall. La encore ,à l'aube j'ai enfin eu un resultat positif :

import os, xbmc, xbmcgui, urllib

ACTION_PREVIOUS_MENU = 10

Meteo = os.getcwd()

Meteo = Meteo[:-1]+'\\'

class MyClass(xbmcgui.Window):

def __init__(self):

backg=Meteo + 'background.png'

fond=xbmcgui.ControlImage(0,0,720,576, backg)

self.addControl(fond)

De ce que j'ai compris ,la commande GETCWD recupere le repertoire courant et lenregistre dans une variable que j'ai nommé ici Meteo(le nom peut etre different ). Ensuite, la deuxieme ligne lui rajoute le repertoire parent (normalment rep SCRIPTS),ce qui donne comme chemin le meme que mon scritp initial :q://scripts//"repertoire courant"// .

Ensuite,plus qu'a rajouter le nom du fichier image voulu et de l'enregistrer dans une derniere variable (

backg=Meteo + 'background.png' .Maintenant que le fichier image est ciblé ,le script doit lafficher ,pour cela ,les deux dernieres lignes ,tout en choisissant la resolution de limage.

NB:en resumé,une des bases de Python est qu'on peut une commande complete (par exemple un calcul dans une seule variable au choix pour simplifier par la suite la programmation et pas tjrs reecrire la ligne.

Voila et maintenant ça fonctionne dans nimporte quel repertoire :)

Ah,j'oubliais un détail important ,pour que la commande

os.getcwd fonctionne,noubliez pas d'importer os !!! :(import xbmc, xbmcgui, os

* Sinon pour ce qui est de la résolution en pal ou ntsc (720*576 ou720*540),g vu sur le tuto Pdf des deux autres Alex (5962 et Poet's) une methode que je nai pas encore essayée mais je vais faire des tests ,apres ya surement mieux mais bon ça peut resoudre le probleme :screenX = self.getWidth()

if screenX <= 720:

background = “Q:\\scripts\\Tutorial\\small_background.gif”

standardFont = “font12”

elif screenX <= 1280:

background = “Q:\\scripts\\Tutorial\\medium_background.gif”

standardFont = “font14”

else:

background = “Q:\\scripts\\Tutorial\\large_background.gif”

standardFont = “font16”

PS : Voila j'avance tres doucement mais surement !!! :ok: (Hélas sur la plupart de mes essais ,ça me plante mon script et ça fonctionne plus lol mais bon je persevere .Sinon, je m'aide un des scripts en plus du tuto ,mais heureusement j'arrive a comprendre ce que j'ecris et qui marche (le reste comprends pas encore)

J'ai vraiment envie d'en savoir plus sur le python!!! .Pour ceux qui sont tentés ,essayez ,c dur au depart pour un debutant (comme moi) ,mais en perseverant ça devrait aller :D (sortir un ptit script correct ça serait pas mal)

Je sais pas si il a été donné quelquepart deja mais je mets en joint le Tutorial Pdf (en anglais) des deux Alex (5962 et poet's)

EDIT: oups désolé pour ce roman qui est ptetre agaçant a lire mais en mettant ce que je crois avoir compris ,si je me trompe ça pourra m'aider beaucoup d'etre corrigé ,j'en ai besoin lol merci ,a plus :marteau:

Tutorial___Python_Scripting_For_Xbmc.pdf

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

  • Réponses 115
  • Created
  • Dernière réponse

Top Posters In This Topic

Meteo = os.getcwd()

Meteo = Meteo[:-1]+'\\'

(...)

De ce que j'ai compris ,la commande GETCWD recupere le repertoire courant et lenregistre dans une variable que j'ai nommé ici Meteo(le nom peut etre different ). Ensuite, la deuxieme ligne lui rajoute le repertoire parent (normalment rep SCRIPTS),ce qui donne comme chemin le meme que mon scritp initial :q://scripts//"repertoire courant"// .

Pas tout à fait en fait...

La première ligne

Meteo = os.getcwd()

met le chemin complet dans la variable 'Meteo' (par ex. très exactement : q://scripts//%repertoire_courant%; )

Hors XBMC ajoute un caractère à la fin de la chaine (J'ai mis le ; mais je ne suis pas sur...) Donc la deuxième ligne supprime le caractère en question à l'aide de : [:-1] (j'expliquerais plus bas comment fonctionne le système des [ ])

Ensuite j'ajoute les doubles \ pour 'terminer' la chaine comme étant un chemin valide. Le résultat est donc par exemple : q:\\scripts\\%repertoire_courant%\\

Ah oui ! les \ sont doublés car un \ seul désigne le caractère qui suit comme étant un caractère spécial (par exemple : \n signifie 'retour à la ligne')

Pour les positionnements, tes idées sont bonnes bien que depuis quelques temps, elles ne soient inutiles. En fait, non, elles sont utiles si vraiment tu veux faire un arrière plan différent pour chaque résolution... Mais depuis quelques mois, une nouvelle fonction à fait son apparition. Je te propose de te rendre ici : http://home.no.net/thor918/xbmc/xbmcgui.ht...inateResolution pour avoir plus d'infos mais en gros ca dit au script :

les coordonnées qui seront mentionnées dans les déclarations d'objets (les controles xbmcgui) seront exprimées en format PAL (ou NTSC ou wide etc...)

setCoordinateResolution(...)setCoordinateResolution(self, int resolution) -- Sets the resolutionthat the coordinates of all controls are defined in.  Allows XBMCto scale control positions and width/heights to whatever resolutionXBMC is currently using. resolution is one of the following:   0 - 1080i      (1920x1080)   1 - 720p       (1280x720)   2 - 480p 4:3   (720x480)   3 - 480p 16:9  (720x480)   4 - NTSC 4:3   (720x480)   5 - NTSC 16:9  (720x480)   6 - PAL 4:3    (720x576)   7 - PAL 16:9   (720x576)   8 - PAL60 4:3  (720x480)   9 - PAL60 16:9 (720x480)

Donc en fait ca redimensionne automatiquement. Bien sur il peut y avoir des effets 'subversifs' (lol quel mot ridicule !! lol) par exemple si tu positionnes une image avec un ratio de 4/3 sur un script au format PAL (720x576) ca va donner bien. Mais si tu executes ce même script sur une TV en 720p (1280x720), la photo va être étirée en largeur....

Sinon dans l'ensemble, tu suis la bonne voie. Continue comme ca

Lien vers le commentaire
Partager sur d'autres sites

  • 4 weeks later...

Bonsoir,

J'ai commencé à travailler sur le script aujourd'hui. J'obtiens les boutons sans problème (avec affichage des jours), l'affichage d'un fond d'écran aussi. Je rencontre cependant le problème suivant: quand j'arrive sur la page d'accueil, je peux naviguer entre les différents jours et quand je sélectionne un boutons j'obtiens l'affichage d'une carte. Le problème: si je sélectionne une autre date, l'image se met bien comme prévu dans un fichier temporaire mais ne s'affiche pas.

Voici le code de l'affichage qui se fait dans la fenêtre principale:

loc = urllib.URLopener()

loc.retrieve(source, destination)

self.addControl(xbmcgui.ControlImage(158,142,512,384, 'Q:\\scripts\\test_script\\img\\temp.jpg'))

Merci pour votre aide

@+

Lien vers le commentaire
Partager sur d'autres sites

Bien joué !!

Alors il faut que tu fasses une fonction (def ...) qui va :

1- essayer de supprimer le control

2- puis l'ajouter

Pour cela il faudra que tu créés ton image en 2 lignes afin de lui donner un nom pour pouvoir la supprimer

Je te laisse chercher, tu me refais signe si tu galères trop ;)

Bon courage

Lien vers le commentaire
Partager sur d'autres sites

Bonsoir,

Le scipt marche depuis hier. J'ai encore quelques trucs à finaliser mais c'est OK. Je mettrai un lien dessus certainement lundi.

Sinon j'ai une petite question: est-il possible de faire des sous-boutons: c'est à dire que quand on appuie sur un bouton d'autres apparaissent sur la même page pour offrir plusieurs options. Dans le cas présent ça servirait pour proposer à chaque date le matin ou l'après-midi. Merci pour l'aide

@+

Lien vers le commentaire
Partager sur d'autres sites

bien évidemment que c'est faisable... peut être pas simplement, peut être faudra t'il passer par des subterfuges...

Sinon, je ne sais pas trop comment tu as construit ton script mais je pense que ca doit ressembler à un peu tout ce qui se fait... C'est à dire qu'en premier tu déclares tous les éléments qui constitueront la fenêtre graphique, puis ensuite tu gères les action et les controles...

Donc, pour afficher des boutons selon les boutons précédemment sélectionés, tu peux simplement déclarer tes boutons matin/après midi en même temps que tous les autres boutons mais ne choisir de les afficher et de leur donner le focus que au moment ou l'utilisateur aura appuyé sur un autre bouton.

Ce n'est pas facile de t'expliquer comme ca, alors ce que je te propose, c'est de me contacter directement si tu as besoin de plus d'aide (msn,mail ou PM)

a+

Lien vers le commentaire
Partager sur d'autres sites

  • 2 weeks later...
Salut,

Désolé de ne pas avoir donné de nouvelles mais j'ai pas mal de boulot. Je vais essayer de poster ma premiere version la semaine prochaine.

No soucis !

On en est tous là... ^_^

Pas eu une seule minute à moi en 2 semaines... :wacko:

Lien vers le commentaire
Partager sur d'autres sites

  • 1 month later...

voici un script qui permet de visualiser les cartes météo de france2 (lien fournit par alexsolex)

France-Meteo07.zip

salut,

Suite à ton script qui nous permets de voir nos carte météorologique de notre région.

Tout sa grâce à toi vinz973 Merci beaucoup ;)

Je me suis permis de Fixé et de rajouté:

- la résolution "self.setCoordinateResolution(6)" pour toutes les sortes de TV.

- Revue le skin et positionnement des items, pas trop le choix apres "self.setCoordinateResolution(6)"

- Fait 2 autres scripts un pour "Paris" et un pour "le Canada :)" c'est surtout pour le canada que je me suis amuser ;)

- Et créé un dossier "cartes" pour l'emplacement les téléchargements des cartes.

019za.jpg

027py.jpg

036fv1.jpg

046au.jpg

Encore merci à toi vinz973

Frost

My_Meteo.rar

Pour tous problème de skin, allez içi SVP

http://gueux-forum.net/index.php?showtopic=91811

Lien vers le commentaire
Partager sur d'autres sites

ggnewow:wacko::(<_<:marteau: :fouf: eek

Heuuu ... JE suis pas sur, enfin je veux dire que j'ai peur de ce que tu as pu faire?....

En fait je comprend pas du tout alors si tu pouvais être plus précis car là, franchement, j'ai peur que mon interprétation soit erronée...

PS: petite précision, on parle bien de script ici hein ? ce qui n'a rien à voir avec le skin !! Ca n'a même aucune prétention de vouloir remplacer une fonction intégrée de XBMC... on est d'accord ?

Lien vers le commentaire
Partager sur d'autres sites

Ah je comprend mieux...

Si vous pouviez séparer vos posts ca serait sympa...

La version 08 du script a été faite par Frostbox et fournie avec un skin pour la section météo de XBMC... On trouve dans cette archive donc un script python (cette section du forum est nickelle pour parler de ca) et un skin (là c'est une autre section du forum qu'il faut utiliser)

JE précise pour ceux et celles qui comme moi nageait un peu (non.. me dites pas que je suis le seul ??? si ??)

Lien vers le commentaire
Partager sur d'autres sites

Je te félicite pour ca....

MAIS

Un script par région, ca fait un peu riche non ?

Allez, on ajoute un controlList quelque part, on programme les controlLeft/controlRight avec les autres éléments de la GUI pour la navigation...

Dans le controllist on choisi sa région, on recréé alors les liens vers les images et hop !!

Allez les gars c pas dur !!! GO GO GO

Lien vers le commentaire
Partager sur d'autres sites

ah ah !

Les cours tu crois que je les ai pris ou ?

J'ai fouillé un peu partout, et j'ai appris sur le tas. A la base je ne suis pas programmeur ! Crois moi, c'est pas très compliqué

Lien vers le commentaire
Partager sur d'autres sites

J'ai rajouté sur la page meteo france et la page région un lien pour voir la carte de vigilance si ca interesse quelqu'un je le met en dl, ya une image avec a mettre dans le meme répertoire.

J'aimerais bien faire un lien vers la meteo nationale quand je suis sur la meteo region mais je n'y connais pas grand chose alors si quelqu'un est chaud ^^

En écrivant ce message je viens de penser a l'histoire de controllist, ca peut le faire en utilisant ca, je vais voir ca ;)

Edit : Je suis en train de modifier le script pour que l'on puisse choisir son département ou la France entiere, je post quand j'ai terminé si ca interesse quelqu'un ou si j'ai un problème ;)

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

Bon j'ai un problème (surment de newbie ^^), j'ai donc fais une liste pour choisir le département, mais je bloque.

Quand on lace le script, les cartes qui s'affichent sont celles de la France grâce a une variable des = 'france'

Quand on veut changer de lieu, on appuis sur un bouton "destination", la liste des régions s'ouvre, on choisit son lieu et on clique, c'est la que je bloque, une fois que j'ai ouvert ma liste, comment je la referme et comment je change la valeur de la variable des ?

j'ai pensé a un : def control == self.list:

mais je ne sais pas quoi mettre dedans !

plz, j'ai besoin d'aide, et je ne trouve pas grand chose sur les listes (en anglais mais je galere a comprendre ^^)

Merci d'avance et bonne nuit ;)

Edit : Un petit sreen : http://perso.wanadoo.fr/xasprod/screenshot000.bmp

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

re-

Premièrement, ton screenshot n'est pas bon, il s'agit d'un screenshot de lecteur RSS...

Pour ton problème de liste , c koi exactement ? tu as réussi à faire apparaitre la liste pour pouvoir choisir un élément ? mais une fois choisi, tu ne sais pas comment traiter le choix ?

pour obtenir l'élément sélecionné d'une liste :

def onControl(control):	if control==self.talistdechoix:		itemselection=self.talistedechoix.getSelectedPosition

itemselection dans cet exemple prendra un entier correspondant à l'item de ta liste qui a été sélectionné (de 0 pour le premier à n-1 pour le dernieravec n éléments dans la liste)

Donc ensuite, si tu as rempli le controlList avec une variable de type liste :

listeregions= ['region 1','région2', .... ,'région n']

il te suffit d'utiliser itemselection pour pointer l'élément de la liste et obtenir la chaine pointer par le controllist :

des = listeregions[itemselection]

donc si itemselection = 0 (premier element de laliste choisi, la commande des = listeregions[itemselection] renverra 'region 1'

Ensuite, une fois que tu as ta variable 'des' il va falloir :

1- effacer le controllist : un truc du genre self.talistedechoix.setVisible(False) et True pour la rendre visile de nouveau

2- donner le focus à un élément de la gui : self.setFocus(self.unboutonGUI)

3- redessiner le controlImage en prenant en compte la variable 'des'

A toi maintenant !!

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

Annonces