IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

[pyCairo] Donner des identifiants aux éléments exportés en SVG


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut [pyCairo] Donner des identifiants aux éléments exportés en SVG
    Bonjour,

    Je développe un programme qui permet de générer un graphique à l'écran et de l'exporter au format SVG. Pour cela, j'utilise pyCairo.
    Je souhaiterais utiliser ce code SVG dans un site web (je l'intègre dans du code HTML5 - jusque là tout va bien), mais pour plus de convivialité, j'aimerai enrichir ce SVG avec des popups qui apparaitraient au passage de la souris.
    Pour cela, j'ai besoin d'accéder aux différents <path> du SVG (pour rajouter des "onmouseover" par exemple).
    Malheureusement, tels qu'il est exporté par pyCairo, le SVG a des <path> sans "id". Impossible de les distinguer les un des autres !

    S'il vous plait : dites moi qu'il y a une solution facile !!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 298
    Points : 6 778
    Points
    6 778
    Par défaut
    Salut,

    Et ouvrir et réenregistrer dans un logiciel de dessin vectoriel ?

    J'utilise Inkscape où les paths ont effectivement une 'id'.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    ouvrir et réenregistrer dans un logiciel de dessin vectoriel ?
    Non, ce doit être fait automatiquement par mon logiciel, lors de la création du graphique...

    Mais merci quand même pour la réponse.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 298
    Points : 6 778
    Points
    6 778
    Par défaut
    Ce n'est pour autant pas impossible, dans le cas d'Inkscape justement.

    On peut l'utiliser en ligne de commande et donc via subprocess().

    Voir le man d'inkscape.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Il aura fallu du temps pour que ça murisse, mais je vais enfin pouvoir classer cette discussion dans la catégorie [résolu].

    Voici comment j'ai procédé, ça peut paraitre tordu, mais ça fonctionne comme je le souhaitais.

    1) Au moment de dessiner les objets à rendre "interactifs" (surbrillance, lien, popup), je relève un point caractéristique du rectangle qui constitue l'objet, ou bien je crée un rectangle "transparent".

    Les coordonnées de point caractéristique apparaissent "en clair" dans le fichier .svg. Il suffit alors :
    2) de parser le document :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from xml.dom.minidom import parse
            doc = parse(fichier.svg)
    3) de rechercher parmi tous les éléments svg de type ceux qui commencent par les coordonnées des points caractéristiques des objets à rendre "interactifs".

    4) et en manipulant ces éléments SVG on peut faire plein de choses :
    rajouter des filtres, des attributs du type "onmouseover", des liens hypertexte .......

    5) et bien sûr, il faut sauvegarder tout çà avec un petit Résultat : si on fait ça au moment de sauvegarder le fichier .svg, c'est complètement transparent pour l'utilisateur.



    Je pense que le "langage" SVG mériterait une rubrique à part entière chez Developpez.com.

    A la prochaine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer des valeurs aux éléments d'un contrôle
    Par alex_noox dans le forum Silverlight
    Réponses: 10
    Dernier message: 16/07/2008, 20h27
  2. Compatibilité des appels aux éléments de formulaire
    Par speedev dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 02/07/2008, 17h14
  3. [OpenOffice][Texte] donner des valeurs aux champs utilisateurs sans insertion
    Par cpf2006 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 18/06/2008, 16h01
  4. [drag drop] donner des propriétés à un élément ?
    Par Merfolk dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/12/2007, 15h28
  5. [Debug]Donner des noms aux thread lors du débugage
    Par jeje99 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/12/2005, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo