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

GUI Python Discussion :

interface utilisateur visualisation données de capteur


Sujet :

GUI Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut interface utilisateur visualisation données de capteur
    Bonjour à tous et à toutes,

    Assez novice en python je tente de réaliser une GUI ou je pourrais visualiser les données de différents capteurs au cours du temps.
    Dans cette interface j'aimerais avoir des boutons pour sélectionner quelles courbes afficher ainsi que des champs de saisie pour rentrer la plage de données a afficher (temps)

    J'aimerais quelque chose comme ceci:

    Nom : temperature_interface.png
Affichages : 1577
Taille : 38,7 Ko

    Pour l'instant je parviens grace a Tkinter a afficher un graphique ou à créer des champs de saisie/ boutons mais je ne parviens pas à les assembler.
    Je serais tres reconnaissant de tout aide appoortée

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par choce001 Voir le message
    Pour l'instant je parviens grace a Tkinter a afficher un graphique ou à créer des champs de saisie/ boutons mais je ne parviens pas à les assembler.
    Si vous ne donnez pas plus d'indications sur ce qui vous bloque illustré par quelques lignes de code, pas facile de vous suggérer autre chose que l'étude des exemples matplotlib qui montrent comment intégrer des courbes à une interface graphique tk.

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    alors, ici je fais un programme avec 2 champs de saisie qui permettront de choisir les min et max de l'axe des abscisse
    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
     
    from tkinter import * 
     
    def show():
        p1 = x_min.get() #get x_min from entry
        p2 = x_max.get() #get x_max from entry
        print(p1)
        print(p2)
     
     
    app = Tk()   
     
    x_min = StringVar() #Password variable
    x_max = StringVar() #Password variable
     
    x_minEntry = Entry(app, textvariable=x_min).pack() 
    x_maxEntry = Entry(app, textvariable=x_max).pack() 
     
    submit = Button(app, text='Envoi',command=show).pack()  
     
     
    app.mainloop() 
     
    x_min_float=float(x_min.get())
    x_max_float=float(x_max.get())
    Ici j'importe mon fichier texte qui contient pour chaque ligne la date et l'heure, date unix( nbr de seconde depuis1/1/1970) , donne capteur
    Je plot ensuite la donne capteur sur le graph

    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
     
    import tkinter as tk
    from matplotlib.figure import Figure
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
     
     
     
    #colone 1 dans f0 colone 2 dans f1
    # on saute ligne 1 / separateur ->"," / 
    data = np.genfromtxt('DATALOG4.txt', delimiter=',',
                      skip_header=0, dtype=None, unpack=False)
     
     
     
    # Conversion date_unix
    s = data['f1'];
    annee   = s / 60 / 60 / 24 / 365;
    jour    = s / 60 / 60 / 24 % 36;
    heure   = s / 60 / 60 % 24;
    minute  = s / 60 % 60;
    seconde = s % 60;
     
    #print("annees=", annee,"jours=", jour,"heures", heure,"minutes", minute,"secondes", seconde);
      #plt.plot(data['f1'],data['f2'])
    plt.plot(minute,data['f2'])
     
    # options d'axe 
    x_start=26;
    x_stop=42;
    y_start=400;
    y_stop=600;
     
    plt.xlabel ('Time')
    plt.ylabel ('Intensite lumineuse (lux)')
    plt.title('TEST .TXT')
     
     
    plt.axis([x_start, x_stop, y_start, y_stop])
    plt.show()
     
    # Tk
    app = tk.Tk()
    app.wm_title("Graphe Matplotlib dans Tkinter")
     
    fig = Figure(figsize=(6, 4), dpi=96)
    ax = fig.add_subplot(111)
     
    ax.plot(minute,data['f2'])
    ax.axis([20,40,450,600])
     
    graph = FigureCanvasTkAgg(fig, master=app)
    canvas = graph.get_tk_widget()
    canvas.grid(row=0, column=0)
     
     
     
    app.mainloop()
    j'aimerais assembler ces codes pour avoir le graph et les 2 champs de saisie pour modifier les abscisses

    Merci

    Ps: doc text en piece jointe
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par choce001 Voir le message
    j'aimerais assembler ces codes pour avoir le graph et les 2 champs de saisie pour modifier les abscisses
    C'est bien côté description du besoin, mais çà ne dit rien sur ce qui vous bloque.

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voici le code que j'ai lorsque je les assemble mais cela me crée 2 fenetres différentes car j'ai un probleme de geometrie, je ne sais pas comment placer les widgets ou je le souhaite

    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
     
     
    from tkinter import * 
    import numpy as np
    import matplotlib.pyplot as plt
     
    import tkinter as tk
    from matplotlib.figure import Figure
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
     
     
    def show():
        p1 = x_min.get() #get x_min from entry
        p2 = x_max.get() #get x_max from entry
        print(p1)
        print(p2)
     
     
    app = Tk()   
     
    x_min = IntVar() #Password variable
    x_max = IntVar() #Password variable
     
    x_minEntry = Entry(app, textvariable=x_min).pack() 
    x_maxEntry = Entry(app, textvariable=x_max).pack() 
     
    submit = Button(app, text='Envoi',command=show).pack()  
     
     
    x_min_float=float(x_min.get())
    x_max_float=float(x_max.get())
     
     
    #colone 1 dans f0 colone 2 dans f1
    # on saute ligne 1 / separateur ->"," / 
    data = np.genfromtxt('DATALOG4.txt', delimiter=',',
                      skip_header=0, dtype=None, unpack=False)
     
    # Conversion date_unix
    s = data['f1'];
    annee   = s / 60 / 60 / 24 / 365;
    jour    = s / 60 / 60 / 24 % 36;
    heure   = s / 60 / 60 % 24;
    minute  = s / 60 % 60;
    seconde = s % 60;
     
     
     
    # Tk
    #app = tk.Tk()
    app.wm_title("Graphe Matplotlib dans Tkinter")
     
    fig = Figure(figsize=(6, 4), dpi=96)
    ax = fig.add_subplot(111)
     
    ax.plot(minute,data['f2'])
    ax.axis([20,40,450,600])
     
    graph = FigureCanvasTkAgg(fig, master=app)
    canvas = graph.get_tk_widget()
    canvas.grid(row=0, column=0)
     
     
     
    app.mainloop()

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par choce001 Voir le message
    Voici le code que j'ai lorsque je les assemble mais cela me crée 2 fenetres différentes car j'ai un probleme de geometrie, je ne sais pas comment placer les widgets ou je le souhaite
    Il n'y a pas de soucis côté "geometrie" mais une ambiguïté dans le choix du gestionnaire de la disposition des widgets (le "geometry manager") car vous avez commencé à placer vos widgets avec .pack pour à la fin utiliser .grid. Dans une fenêtre, c'est l'un ou (exclusif) l'autre.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/11/2015, 11h25
  2. Réponses: 13
    Dernier message: 20/03/2014, 11h07
  3. Réponses: 4
    Dernier message: 17/03/2012, 20h39
  4. Quel CMS pour un interface utilisateur d'une base de données
    Par Ytupid dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 28/01/2008, 21h10
  5. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27

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