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 :

Webbrowser Tkinter Python


Sujet :

Tkinter Python

  1. #1
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Par défaut Webbrowser Tkinter Python
    Bonsoir à tous ,
    Je voulais creer une petite interface, qui ouvre une page internet. En fait, l'utilisateur tape quelque chose en entrée, et une page correspondant à l'entrée s'ouvre.
    Mon choix s'est donc tourné vers webbrowser, le hic c'est qu'il m'ouvre la page sans que je n'ai tapé quoi que ce soit :

    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
    import webbrowser
    from Tkinter import *
    import urllib
     
    def Ouvrir(texte):
        url= "http://pfam.sanger.ac.uk//protein/+texte"
        webbrowser.open_new(url)
     
    test = Tk()
     
    texte=StringVar()
     
     
    Page = Button(test, text='Page Pfam', background='red', height=1, command=Ouvrir(texte))
     
    Page.pack(side=TOP, fill=BOTH)
     
    entree = Entry(test, background='pink',textvariable=texte)
    entree.pack(side=TOP, fill=BOTH)
     
    test.mainloop()
    Quelqu'un pourrait m'aider ?
    Merci d'avance !

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Deux solutions :

    lambda, très utile pour utiliser des fonctions avec arguments sous Tkinter, sinon ta fonction est lancée a la lecture (Ouvrir(texte)).

    Ou la méthode get() du StringVar. Puisque tu a accès à texte:

    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
    import webbrowser
    from Tkinter import *
    import urllib
     
    def Ouvrir(texte):
        url= "http://pfam.sanger.ac.uk//protein/"+texte
        webbrowser.open_new(url)
     
    test = Tk()
     
    texte=StringVar()
     
     
    Page = Button(test, text='Page Pfam', background='red', height=1, command=lambda: Ouvrir(texte))
     
    Page.pack(side=TOP, fill=BOTH)
     
    entree = Entry(test, background='pink',textvariable=texte)
    entree.pack(side=TOP, fill=BOTH)
     
    test.mainloop()
    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
    import webbrowser
    from Tkinter import *
    import urllib
     
    def Ouvrir():
        url= "http://pfam.sanger.ac.uk//protein/"+texte.get()
        webbrowser.open_new(url)
     
    test = Tk()
     
    texte=StringVar()
     
     
    Page = Button(test, text='Page Pfam', background='red', height=1, command=Ouvrir)
     
    Page.pack(side=TOP, fill=BOTH)
     
    entree = Entry(test, background='pink',textvariable=texte)
    entree.pack(side=TOP, fill=BOTH)
     
    test.mainloop()
    @+

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Rebonjour,

    Petite explication quand même :

    Cela ne viens pas de Tkinter mais d'un fonctionnement normal de python.

    Un exemple :

    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
    Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) 
    [GCC 4.3.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> def ma_func():
    ...     print 'ok'
    ... 
    >>> command=ma_func
    >>> command
    <function ma_func at 0xb7cb46f4>
    >>> if command==ma_func: print 'idem'
    ... 
    idem
    >>> command()
    ok
    >>> command=ma_func()
    ok
    >>>
    Dans la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> command=ma_func
    >>> command
    <function ma_func at 0xb7cb46f4>
    Tu remarque que ton objet local command fais référence à ma_func mais n'est pas executé.

    Ce qui se confirme avec command() qui lui exécute ma_func().

    En fait tu crée une instance locale de ma_func (objet fonction) et tu lui associe la variable locale command (objet méthode).
    L'objet méthode command est crée et pointe sur l'objet fonction ma_func sans l'executer. L'objet ma_func est appelé si un argument (ici ()) est donné.

    J'espere que pour une fois je suis clair

    @+

    Petit edit : Je parle de fonction mais en fait ici c'est une procédure. Une fonction retourne (return) une/des valeurs.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 38
    Par défaut
    C'est très clair ! Merci beaucoup !!!

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

Discussions similaires

  1. Bouton rejouer tkinter python
    Par lostperson dans le forum Tkinter
    Réponses: 13
    Dernier message: 24/02/2015, 19h12
  2. Problème de commandes sur Tkinter (Python)
    Par Inariuss dans le forum Général Python
    Réponses: 4
    Dernier message: 14/05/2014, 20h03
  3. Bomberman tkinter python
    Par Exoplanet dans le forum Tkinter
    Réponses: 18
    Dernier message: 11/05/2014, 07h51
  4. [Tkinter] Python 2.6 - Quel outil utiliser en remplacement du print()
    Par sir_nebuchadnezzar dans le forum Général Python
    Réponses: 16
    Dernier message: 20/11/2012, 09h51
  5. [Tkinter] Python sous Linux
    Par PMdomine dans le forum Tkinter
    Réponses: 7
    Dernier message: 06/03/2006, 20h56

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