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

Tkinter Python Discussion :

[Tkinter] comment afficher un lien hypertexte dans un objet Text de Tk


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Tkinter] comment afficher un lien hypertexte dans un objet Text de Tk
    Je travaille sous XP, Python 2.3.3
    J'ai réalisé un programme qui me permet de saisir un nom dans une fenétre Tkinter, l'application recherche alors le nom dans une base de données et affiche les coordonnées dans un objet Text Tkinter. Je voudrais que :
    - l'adresse email soit surligné et sous l'action de la souris, ouvre l'éditeur de mail de la personne (Outlook, OExpress, Lotus notes,...) avec l'adresse mail de destination
    - l'adresse web soit surligné et sous l'action de la souris, ouvre l'éditeur internet (IE, ..) à l'adresse url spécifié
    Comment est ce que je peux programmer ça simplement?
    Merci par avance

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 14
    Points : 17
    Points
    17
    Par défaut Re: comment afficher un lien hypertexte dans un objet Text d
    Citation Envoyé par noumea
    J'ai réalisé un programme qui me permet de saisir un nom dans une fenétre Tkinter, l'application recherche alors le nom dans une base de données et affiche les coordonnées dans un objet Text Tkinter.
    tu peux utiliser les 'tags': tag_add pour delimiter l'url puis les methodes tag_config et tag_bind pour la partie cosmetique et l'action click souris.

    Pour bien apprendre Python suis ces tutoriels et cours de formation Python : http://python.developpez.com/cours/
    Le meilleur livre Python : Apprendre à programmer avec Python 3 par Gérard Swinnen http://python.developpez.com/cours/apprendre-python3/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    comment les utiliser ?

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    pour répondre à hexadécime, voilà ce que j'ai fait, suivant les conseils de Lionel, j'ai donc utilisé les tags et la méthode bind pour générer une action lorsque l'on clique sur l'@mail ou le site web.
    mon code n'est peut être pas optimisé, mais ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
        def __affLigne(self,ligne):
            "fonction à utiliser pour afficher une ligne de la base de données"
            lChamps = ligne.split(';')
            msg1 = "%s,\nAdresse: %s,\nTéléphone: %s, Fax: %s,\n@mail: " % (lChamps[0].strip(),lChamps[1].strip(),lChamps[2].strip(),lChamps[3].strip())
            self.wdAff.insert(END,msg1)
            self.wdAff.insert(END,lChamps[4].strip(),'tag_email')
            self.wdAff.tag_config('tag_email',foreground='blue',underline=1)
            self.wdAff.tag_bind('tag_email','<Button-1>',self.__email)
            self.wdAff.insert(END,", Site web: ")
            self.wdAff.insert(END,"www.yahoo.fr",'tag_url') #url fixe pour les tests
            self.wdAff.tag_config('tag_url',foreground='blue',underline=1)
            self.wdAff.tag_bind('tag_url','<Button-1>',self.__url)
            self.wdAff.insert(END,"\n------------------------------------------------------------------------------------------\n")
            self.wdAff.see("0.0")
     
        def __email(self,event=None):
            "fonction appelée lors d'un clique gauche sur un lien email"
            [idmail0,idmail1] = self.wdAff.tag_nextrange('tag_email',"0.0")
            mail = self.wdAff.get(idmail0,idmail1)
            os.startfile("mailto:"+mail) #self.__affiche(mail)
     
        def __url(self,event=None):
            "fonction appelée lors d'un clique gauche sur un lien web"
            [idurl0,idurl1] = self.wdAff.tag_nextrange('tag_url',"0.0")
            url = self.wdAff.get(idurl0,idurl1)
            os.startfile(url) #self.__affiche(url)
    Pour ouvrir le lien internet, j'ai utilisé la fonction os.startfile(adresse_web) et pour ouvrir le client de messagerie sur l'adresse mail concerné, j'ai utilisé os.startfile("mailto:"+mail).

    Ca fonctionne à peu près bien (à peu près seulement car je trouve que les applications web et surtout email mettent pas mal de temps à s'ouvrir), en tout cas sur ma plateforme.

    Si vous pensez que les méthodes que j'utilise ne sont que du bidouillage de bas étage :-)
    et que cela ne fonctionnera pas sous toute les plateforme (je me restreints à un environnement Microsoft) ou sous tous les navigateurs web et client de messagerie (Outlook, OExpress et Lotus Notes surtout)
    envoyez moi vos suggestions....

    Si ça utilise la bibliothéque win32 ou win32com, il me faudra pas mal d'explication car je ne comprends rien à son utilisation

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2014, 10h06
  2. [Débutant] comment créer des liens hypertexte dans une webpart
    Par zanoubya dans le forum SharePoint
    Réponses: 3
    Dernier message: 26/08/2013, 10h16
  3. Comment créer des liens hypertextes dans Word ?
    Par Forza Matlab dans le forum MATLAB
    Réponses: 7
    Dernier message: 15/01/2013, 18h58
  4. Comment modifier un lien hypertexte dans Word
    Par QuickSave dans le forum Delphi
    Réponses: 3
    Dernier message: 05/01/2007, 13h11
  5. Comment accéder à un lien hypertexte dans un autre frame ?
    Par pdtor dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/01/2006, 15h56

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