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 :

Aide programme python affichage dans Tkinter [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Aide programme python affichage dans Tkinter
    Salut à tous, je suis entrain de faire un programme et je suis un peu bloqué. En gros je crée un programme qui récupère les données météos à partir d'un API, je veux ensuite faire afficher dans une fenêtre Tkinter ces données quand l'utilisateur choisit un bouton par exemple bouton température afficherai la température, jusque là tout va bien, mais le problème c'est que pour l'instant dans mon programme l'utilisateur choisit la ville de son choix dans la console, alors que je voudrais qu'il puisse la rentrer dans la fenêtre Tkinter.

    Merci !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par ProgPython Voir le message
    mais le problème c'est que pour l'instant dans mon programme l'utilisateur choisit la ville de son choix dans la console, alors que je voudrais qu'il puisse la rentrer dans la fenêtre Tkinter.
    Ben il va falloir créer un Widget qui permette à l'utilisateur de saisir la ville qu'il souhaite.
    Ce widget sera à choisir en fonction de la présentation souhaitée (et de ce qui paraîtra le plus pratique pour l'utilisateur).
    Si vous ne savez pas trop, vous pouvez regarder sur TkDocs le tutoriel qui présente un peu tout les widgets et donne des bouts de code pour les faire fonctionner à minima.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Le problème n'est pas de créer le widget, le problème c'est que je n'arrive pas à lui affecter la fonction choix de la ville. Je peux vous montrer mon code si ça peut vous aider à visualiser ce dont je parle.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par ProgPython Voir le message
    Le problème n'est pas de créer le widget, le problème c'est que je n'arrive pas à lui affecter la fonction choix de la ville. Je peux vous montrer mon code si ça peut vous aider à visualiser ce dont je parle.
    Poster du code, expliquer ce qu'on en attend et les soucis qu'on rencontre, lorsqu'on demande de l'aide sont des informations intéressantes car elles permettent de savoir quel est le problème bien plus précisément... et donc éventuellement de proposer des solutions.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Poster du code, expliquer ce qu'on en attend et les soucis qu'on rencontre, lorsqu'on demande de l'aide sont des informations intéressantes car elles permettent de savoir quel est le problème bien plus précisément... et donc éventuellement de proposer des solutions.

    - W
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    import urllib
    import json
    from tkinter import * 
    from tkinter.messagebox import * 
    import webbrowser
    import datetime
     
     
    ville= str(input("quelle ville ?:"))
     
    webbrowser.open("https://maps.googleapis.com/maps/api/staticmap?center="+ville+"&zoom=14&size=400x400&key=AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8")
     
    f = urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q='+ville+'&APPID=1f8e93176443bf6677cc11c5935b43cc')
     
     
     #CleAPIGoogle:  AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8  
     
    var = f.read()
     
     
    L=str(var)
     
     
    s=L[2:-1]
    json_acceptable_string = s.replace("'", "\"")
    d = json.loads(json_acceptable_string)
     
    #code avec tkinter
     
     
    fenetre = Tk()
     
    label = Label(fenetre, text="Quelle Ville?")
    label.pack()
     
     
    def recupereInfo(chaine, dico) :
        if chaine == "Température" :
            return (str(dico['main']['temp']),"Kelvins")
     
        if chaine == "Pression" :
            return (str(dico['main']['pressure']),"hPa")
     
        if chaine == "Humidité" :
            return (str(dico['main']['humidity']), "%")
     
        if chaine == "Vitesse du vent" :
            return (str(dico['wind']['speed']), "mps")
     
        if chaine == "Nuages" :
            return (str(dico['clouds']['all']), "%")
     
        if chaine == "Levé du soleil" :
            return str(dico['sys']['sunrise'])
     
        if chaine == "Couché du soleil" :
            return str(dico['sys']['sunset'])
     
        if chaine == "Temps général" :
            return str(dico['weather']['description'])
     
     
    def recupere():
        showinfo("Choix de la ville", entree.get())
     
        ville= str(input("quelle ville ?:"))
     
        webbrowser.open("https://maps.googleapis.com/maps/api/staticmap?center="+ville+"&zoom=14&size=400x400&key=AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8")
     
        f = urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q='+ville+'&APPID=1f8e93176443bf6677cc11c5935b43cc')
     
     
     
     #CleAPIGoogle:  AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8  
     
        var = f.read()
     
     
        L=str(var)
     
     
        s=L[2:-1]
        print(s)
        json_acceptable_string = s.replace("'", "\"")
        d = json.loads(json_acceptable_string)
     
    def recupereListe():
        showinfo("Informations", recupereInfo(list_items[liste.curselection()[0]], d) )
     
     
     
    ville = StringVar() 
    ville.set("")
    entree = Entry(fenetre, textvariable=ville, width=30)
    entree.pack()
     
    bouton = Button(fenetre, text="Valider", command=recupere)
    bouton.pack()
     
     
    value = StringVar() 
    bouton1 = Radiobutton(fenetre, text="Aujourd'hui", variable=value, value=1)
    bouton2 = Radiobutton(fenetre, text="Demain", variable=value, value=2)
    bouton3 = Radiobutton(fenetre, text="Sur la semaine", variable=value, value=3)
    bouton1.pack()
    bouton2.pack()
    bouton3.pack()
     
     
    liste = Listbox(fenetre)
     
    list_items= ["Température","Pression","Humidité","Vitesse du vent","Nuages","Levé du soleil","Couché du soleil","Temps général"]
     
    k=1
    for element in list_items : 
        liste.insert(k, element)
        k = k+1
     
    liste.pack()
    boutonliste = Button(fenetre, text="Valider", command=recupereListe)
    boutonliste.pack()
    boutonfermer=Button(fenetre, text="Fermer", command=fenetre.quit())
     
     
    fenetre.mainloop()

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Poster du code, c'est bien... maintenant, il faudrait exposer le problème histoire de savoir quoi lire dans ce brouillon.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    suite à ton passage sur le chat, et bien que je ne connaisse rien au python, j'ai réussi à faire marcher quelque chose en faisant les modifs suivantes :

    Je sais pas si c'est ce que tu cherche

    Code python : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    import urllib.request
    import json
    from tkinter import * 
    from tkinter.messagebox import * 
    import webbrowser
     
    #ville= str(input("quelle ville ?:"))
    #webbrowser.open("https://maps.googleapis.com/maps/api/staticmap?center="+ville+"&zoom=14&size=400x400&key=AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8")
    #f = urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q='+ville+'&APPID=1f8e93176443bf6677cc11c5935b43cc')
    #CleAPIGoogle:  AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8  
    #var = f.read()
    #L=str(var)
    #s=L[2:-1]
    #json_acceptable_string = s.replace("'", "\"")
    #d = json.loads(json_acceptable_string)
     
    #code avec tkinter
     
    d = dict()    
     
    fenetre = Tk()
     
    label = Label(fenetre, text="Quelle Ville?")
    label.pack()
     
    def recupereInfo(chaine, dico) :
        if chaine == "Température" :
            return (str(dico['main']['temp']),"Kelvins")
     
        if chaine == "Pression" :
            return (str(dico['main']['pressure']),"hPa")
     
        if chaine == "Humidité" :
            return (str(dico['main']['humidity']), "%")
     
        if chaine == "Vitesse du vent" :
            return (str(dico['wind']['speed']), "mps")
     
        if chaine == "Nuages" :
            return (str(dico['clouds']['all']), "%")
     
        if chaine == "Levé du soleil" :
            return str(dico['sys']['sunrise'])
     
        if chaine == "Couché du soleil" :
            return str(dico['sys']['sunset'])
     
        if chaine == "Temps général" :
            return str(dico['weather']['description'])
     
     
    def recupere():
        showinfo("Choix de la ville", entree.get())
     
        ville= entree.get()
     
        webbrowser.open("https://maps.googleapis.com/maps/api/staticmap?center="+ville+"&zoom=14&size=400x400&key=AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8")
     
        with urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q='+ville+'&APPID=1f8e93176443bf6677cc11c5935b43cc') as f:
            var = f.read()
     
        L=str(var)
        s=L[2:-1]
        print(s)
        json_acceptable_string = s.replace("'", "\"")
        global d
        d = json.loads(json_acceptable_string)
     
    def recupereListe():
        global d
        showinfo("Informations", recupereInfo(list_items[liste.curselection()[0]], d) )
     
     
     
    ville = StringVar() 
    ville.set("")
    entree = Entry(fenetre, textvariable=ville, width=30)
    entree.pack()
     
    bouton = Button(fenetre, text="Valider", command=recupere)
    bouton.pack()
     
     
    value = StringVar() 
    bouton1 = Radiobutton(fenetre, text="Aujourd'hui", variable=value, value=1)
    bouton2 = Radiobutton(fenetre, text="Demain", variable=value, value=2)
    bouton3 = Radiobutton(fenetre, text="Sur la semaine", variable=value, value=3)
    bouton1.pack()
    bouton2.pack()
    bouton3.pack()
     
     
    liste = Listbox(fenetre)
     
    list_items= ["Température","Pression","Humidité","Vitesse du vent","Nuages","Levé du soleil","Couché du soleil","Temps général"]
     
    k=1
    for element in list_items : 
        liste.insert(k, element)
        k = k+1
     
    liste.pack()
    boutonliste = Button(fenetre, text="Valider", command=recupereListe)
    boutonliste.pack()
    boutonfermer=Button(fenetre, text="Fermer", command=fenetre.quit())
     
     
    fenetre.mainloop()
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    suite à ton passage sur le chat, et bien que je ne connaisse rien au python, j'ai réussi à faire marcher quelque chose en faisant les modifs suivantes :

    Je sais pas si c'est ce que tu cherche

    Code python : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    import urllib.request
    import json
    from tkinter import * 
    from tkinter.messagebox import * 
    import webbrowser
     
    #ville= str(input("quelle ville ?:"))
    #webbrowser.open("https://maps.googleapis.com/maps/api/staticmap?center="+ville+"&zoom=14&size=400x400&key=AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8")
    #f = urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q='+ville+'&APPID=1f8e93176443bf6677cc11c5935b43cc')
    #CleAPIGoogle:  AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8  
    #var = f.read()
    #L=str(var)
    #s=L[2:-1]
    #json_acceptable_string = s.replace("'", "\"")
    #d = json.loads(json_acceptable_string)
     
    #code avec tkinter
     
    d = dict()    
     
    fenetre = Tk()
     
    label = Label(fenetre, text="Quelle Ville?")
    label.pack()
     
    def recupereInfo(chaine, dico) :
        if chaine == "Température" :
            return (str(dico['main']['temp']),"Kelvins")
     
        if chaine == "Pression" :
            return (str(dico['main']['pressure']),"hPa")
     
        if chaine == "Humidité" :
            return (str(dico['main']['humidity']), "%")
     
        if chaine == "Vitesse du vent" :
            return (str(dico['wind']['speed']), "mps")
     
        if chaine == "Nuages" :
            return (str(dico['clouds']['all']), "%")
     
        if chaine == "Levé du soleil" :
            return str(dico['sys']['sunrise'])
     
        if chaine == "Couché du soleil" :
            return str(dico['sys']['sunset'])
     
        if chaine == "Temps général" :
            return str(dico['weather']['description'])
     
     
    def recupere():
        showinfo("Choix de la ville", entree.get())
     
        ville= entree.get()
     
        webbrowser.open("https://maps.googleapis.com/maps/api/staticmap?center="+ville+"&zoom=14&size=400x400&key=AIzaSyCAAMXESmzBli5m30ZUOqW8UbuqNGIJtp8")
     
        with urllib.request.urlopen('http://api.openweathermap.org/data/2.5/weather?q='+ville+'&APPID=1f8e93176443bf6677cc11c5935b43cc') as f:
            var = f.read()
     
        L=str(var)
        s=L[2:-1]
        print(s)
        json_acceptable_string = s.replace("'", "\"")
        global d
        d = json.loads(json_acceptable_string)
     
    def recupereListe():
        global d
        showinfo("Informations", recupereInfo(list_items[liste.curselection()[0]], d) )
     
     
     
    ville = StringVar() 
    ville.set("")
    entree = Entry(fenetre, textvariable=ville, width=30)
    entree.pack()
     
    bouton = Button(fenetre, text="Valider", command=recupere)
    bouton.pack()
     
     
    value = StringVar() 
    bouton1 = Radiobutton(fenetre, text="Aujourd'hui", variable=value, value=1)
    bouton2 = Radiobutton(fenetre, text="Demain", variable=value, value=2)
    bouton3 = Radiobutton(fenetre, text="Sur la semaine", variable=value, value=3)
    bouton1.pack()
    bouton2.pack()
    bouton3.pack()
     
     
    liste = Listbox(fenetre)
     
    list_items= ["Température","Pression","Humidité","Vitesse du vent","Nuages","Levé du soleil","Couché du soleil","Temps général"]
     
    k=1
    for element in list_items : 
        liste.insert(k, element)
        k = k+1
     
    liste.pack()
    boutonliste = Button(fenetre, text="Valider", command=recupereListe)
    boutonliste.pack()
    boutonfermer=Button(fenetre, text="Fermer", command=fenetre.quit())
     
     
    fenetre.mainloop()

    Merci ça m'a beaucoup aidé, je m'en suis sorti !

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

Discussions similaires

  1. Aide Programme Python
    Par Lifestyle_Prod dans le forum Général Python
    Réponses: 8
    Dernier message: 19/05/2013, 15h30
  2. Aide programmation Python; Jeu de blackjack
    Par toniobuteau dans le forum Général Python
    Réponses: 1
    Dernier message: 03/10/2012, 06h21
  3. Aide programmation python récursivité
    Par bibi34 dans le forum Général Python
    Réponses: 2
    Dernier message: 29/11/2010, 00h29
  4. aide programme python!
    Par ano33 dans le forum Général Python
    Réponses: 4
    Dernier message: 28/04/2010, 16h54
  5. Aide sur l'affichage dans une zone texte
    Par Xsniepr dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 03/07/2007, 02h09

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