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

wxPython Discussion :

ouvrir un file dans une panel et visualiser dans une autre panel wxpython


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Par défaut ouvrir un file dans une panel et visualiser dans une autre panel wxpython
    Bonjour,

    c'est un peu compliquer mais je vais essayer

    bon j'ai une panel ou y a un bouton 'file' pour le choix d'un file et l'ouvrir ce file c'est un fichier .nc ( netCDF4) donc j'aimerai le visualiser mais le problème j'aimerai le visualiser dans une autre panel qui sera comme un quicklook , et à chaque fois faut juste choisir un file de type .nc et directement va être visualiser sur l'autre panel automatiquement

    je sais comment lire et visualiser un fichier .nc sous python voilà 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
    import numpy as np
    import netCDF4
    import matplotlib.pyplot as plt
     
    #lecture du netcdf
    fic='g_xvxvxvxv_20190108T120000Z.nc'
     
    path='/home/globe/2019/01/08/'
     
    nc = netCDF4.Dataset(path+fic,'r')
    #lecture d'un variable 
    cm=nc.variables['cm'][:]
     
    #Affichage de la variable
    plt.pcolormesh(cm)
    plt.colorbar()
    plt.show()
    et voilà une partie de mon code pour 2 panels :

    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
    class LeftPanelTop(wx.Panel): #ici le choix de file 
        def __init__(self, parent):
            super().__init__(parent,style = wx.SUNKEN_BORDER)
            self.SetBackgroundColour('snow2')
            List_choices = ["1Km","3Km"]
            List2 = ["3X3","5X5","7X7"]
            self.dateLbl = wx.StaticBox(self, -1, 'Outils ', size=(310, 320))
     
            self.dategraphSizer = wx.StaticBoxSizer(self.dateLbl, wx.VERTICAL)
            combobox1 = wx.ComboBox(self,choices = List_choices, size =(80,20),pos =(180,50))
            combobox2 = wx.ComboBox(self,choices = List2, size =(80,20),pos =(180,90))
            wx.StaticText(self, label='Reference:', pos=(70, 50))
            wx.StaticText(self, label='Taille :', pos=(70, 90))
            QuickLook = wx.Button(self ,-1, "Open file" , size =(80, 25),pos =(180,130))
            wx.StaticText(self, label='QuickLook:', pos=(70, 130))
            QuickLook.Bind(wx.EVT_BUTTON, self.onOpen)
     
        def onOpen(self, event):
            wildcard = "netCDF4 files (*.nc)|*.nc"
            dialog = wx.FileDialog(self, "Open netCDF4 Files", wildcard=wildcard,
                                   style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
     
            if dialog.ShowModal() == wx.ID_CANCEL:
                return
     
     
            path = dialog.GetPath()
     
    #visualisation ici 
    class LeftPanelBottom(wx.Panel):
        def __init__(self, parent):
            super().__init__(parent,style = wx.SUNKEN_BORDER)
            self.SetBackgroundColour('whitesmoke')
            self.dateLbl = wx.StaticBox(self, -1, 'QuickLook', size=(310, 600))

    ce que j'aimerai faire c'est utiliser mon code pour lire visualisation des fichier .nc dans mon code et que mes utilisateurs peuvent choisir un file qui existe et après s'affiche automatiquement sur l'autre panel

    merci d'avance pour toute aide

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Il y a plusieurs façon de faire communiquer des objets.

    Soit en les fournissant en paramètres des instances/méthodes ayant besoin d'accéder à d'autres objets, cela peut être assez difficile selon le niveau de profondeur des objets créés.
    Soit en utilisant un objet référencant les objets partagés par l'application, une classe singleton, un module dédié (qui est déjà un singleton), autres.

    Mais avec wx, en fournissant des name aux widgets, il est possible d'accéder aux objets créés avec la méthode FindWindowByName.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> import wx
    >>> app = wx.App()
    >>> win = wx.Frame(None, name='master')
    >>> p1 = wx.Panel(win, name='panel1')
    >>> p2 = wx.Panel(win, name='panel2')
    >>> p1.FindWindowByName('panel2')
    <wx._core.Panel object at 0x7f50bcc77ca8>
    >>> p1.FindWindowByName('master')
    <wx._core.Frame object at 0x7f50bcc77b88>
    Il faut bien faire attention à ne pas faire de doublons de name.

    Note que je suis comme toi, j'ai cherché l'info, le site de référence est https://docs.wxwidgets.org/3.0/page_class_cat.html (c'est pas pour python, mais cela ne dépayse pas trop vu que la doc est très bien fournie avec des liens pointant vers les autres widgets)
    De là, j'ai regardé ce qu'il y avait dans la doc du panel, pas garnd chose dessus, alors j'ai regardé sur les classes héritées, et paf, on trouve ce qu'il faut dans wxWindow

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Par défaut
    Bonjour,

    mais j'aimerai savoir au moins ou je vais mettre mon code pour le fichier nectcdf5 genre ou mettre le path et le code et comment utiliser matplotlib dans la 2em panel ou la 1er

    c'est compliqué vraiment

    merci d'avance

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Par défaut
    Bonjour,

    je pense qu il faut utiliser les packag matplotlib et le mettre dans la 2em panel mais comment lier les deux panels , pour que quand j selectionne un file dans openfile automatiquement il va etre visualiser sur l'autre panel , ?

    je pense faut utiliser matplotlib et le code que j ai mis pour la lecture des fichier .nc mais sur quel partie du code et comment indiquer le chemin et que l affichage devra être sur la 2em panel

    c'est compliquer c'est compliquer

    Nom : g.jpg
Affichages : 570
Taille : 16,5 Ko

  5. #5
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Citation Envoyé par soma12 Voir le message
    ... mais comment lier les deux panels , pour que quand j selectionne un file dans openfile automatiquement il va etre visualiser sur l'autre panel , ?
    Bah, c'est à toi d'organiser ton code comme il faut, si dans ton 1er panel il y a ouverture d'un fichier et que son contenu doit être fourni à un second panel, alors une méthode de ton cru devra être ajouté au 2nd panel afin que l'on puisse lui fournir ces données et qu'il sache quoi en faire pour afficher un graphique matplotlib.

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 44
    Par défaut
    Bonjour ,

    j’essaie de trouver une solution je test comme ça quand j m bloque je poste pour voir où le problème

    merci d'avance

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/01/2024, 21h15
  2. Réponses: 6
    Dernier message: 24/11/2019, 09h16
  3. Ouvrir un fichier dans un autre editeur ?
    Par vnabet dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 07/06/2018, 12h32
  4. Réponses: 6
    Dernier message: 03/04/2007, 10h19
  5. Ouvrir un page dans un autre fenetre
    Par Alec6 dans le forum JSF
    Réponses: 2
    Dernier message: 11/12/2006, 19h33

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