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 :

Comment rafraichir un wxGrid à l'ouverture d'un fichier ?


Sujet :

wxPython

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut Comment rafraichir un wxGrid à l'ouverture d'un fichier ?
    Voilà j'ai quasi bouclé mon prog et réglé tous mes problèmes.

    Le seul soucis qu'il me reste est que le wxGrid ne se rafraichit pas...

    Le principe est toujours le même, on importe un fichier de données (dans lequel on ré-ercit à l'ouverture d'un fichier) :
    Ensuite le prog tourne, et j'ai crée une fonction pour l'ouverture d'un fichier (Ou la variable "path" définit un chemin d'accès au fichier dans lequel réecrire ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    path = (getcwd() + "\\Donnees.py")#Definition d'un chemin pour fonctions (voir plus bas "Sauvegarer,SauvegarderSous, Ouverture")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        def Ouverture(self,evt):
            dlg = wx.FileDialog(self,"Nom du fichier",testsauve,"","*.py;*.pyw",wx.OPEN)
            retour = dlg.ShowModal()
            if retour == wx.ID_OK :
                chemin1 = dlg.GetPath()
                recup=open(str(chemin1),'r')
                sauv=open(str(path),'w')
                lec=recup.read()
                sauv.write(lec)
    Elle n'est pas finie car j'ai essayé beaucoup de méthodes mais rien n'y fait...Impossible d'avoir la grille avec les bonnes valeurs dans les cases...
    Je ne sais vraiment plus quoi faire, si quelqu'un pouvait m'aider...

    Voilà un aperçu du prog :



    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Points : 388
    Points
    388
    Par défaut
    Bonjour,
    Je ne sais pas comment tu remplis ta grille ...
    Moi je fais un "myGrid.ClearGrid()", puis j'y insère mes données...

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Euh je la remplie comme ça :

    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
    #Boucle de remplissage des differentes colonnes
            x=0
            while(x<sonde):
              attr3 = wxGridCellAttr()#Creation d'un 3eme attribut pour definir les couleurs
              self.grid.SetRowAttr(x, attr3)#Remplissage par ligne
              self.grid.SetCellValue(x,5,str(verif[x]))
              self.grid.SetCellValue(x,6,str(F0[x]))
              self.grid.SetCellValue(x,4,str(IDsonde[x]+1))
              self.grid.SetCellValue(x,3,heure) 
              self.grid.SetCellValue(x,7,str(e[x]))
              if e[x] == 'Bon' :
                attr3.SetTextColour("forest green")
              else: 
                attr3.SetTextColour(wx.RED)
              attr3.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD))
              attr3.SetAlignment(wx.ALIGN_CENTER,wx.ALIGN_CENTER)
              if e[x] == 'Bon' or 'Mauvais':
                attr4.SetReadOnly(True)
              x+=1
    Les variables étant contenues dans "Donnees.py"

    Comment y insères tu tes données ???

  4. #4
    Membre averti
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Points : 388
    Points
    388
    Par défaut
    En appelant ta boucle de remplissage, ça devrait afficher les nouvelles valeurs ?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Elle se fait dans l'init de la frame...

    Comment je peux la rappeller ?

    Ah et la grille se crée en fonction d'une variable contenue dans "Donnees.py", le problème ne vient il pas aussi de là ??

  6. #6
    Membre averti
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Points : 388
    Points
    388
    Par défaut
    Tu créés une fonction qui remplie ta grille, tu l'appelles dans l'init, et quand tu veux la rafraichir.
    la grille se crée en fonction d'une variable contenue dans "Donnees.py", le problème ne vient il pas aussi de là ??
    Je ne pense pas. (Faudrait voir le code ...)

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    J'ai essayé plusieurs methodes et le problème vient du fait qu'il ne prend pas en compte le fait que le module "Donnees" ait été modifié...

    Comment résoudre ce problème ??

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    bonjour,

    j'ai le meme probleme, je supprime une ligne d'une grid, mais la ligne ne dispari pas, et kan je ferme et je re ouvre la fentre , la ligne n'existe plus,....je ne sais pas comment faire pour rafrichir la fenètre, j'ai esayé de fermer et de re ouvir la fenètre a partir du code mais ça prend bcp de temps kan ma grid est chargée....comment rafrichir????

  9. #9
    Membre averti
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 290
    Points : 388
    Points
    388
    Par défaut
    Comment résoudre ce problème ??
    Ne pas importer donnees par "from donnees import *"
    mais par "import donnees as d"
    Dans la méthode "Ouverture", ajoute et créée une méthode pour remplir ta grille que tu appelles dans ton init.
    (Beaucoup de modifs dans ton code )
    Je ne sais pas comment faire autrement...
    Peut-être avec un compileFile(ton fichier.py), puis from tonFichier import * ...

    moon93 :
    utilise self.myGrid.ForceRefresh()

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 60
    Points
    60
    Par défaut
    et pour un frame , on peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    self.frame.ForceRefresh()

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Quelle différence entre les deux méthodes d'importation, exactement ?

  12. #12
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Merci pour ces quelques aides, j'ai finalement réussi à me débrouiller, mon prog est fini et fonctionnel

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

Discussions similaires

  1. Comment programmer en vba l'ouverture d'un fichier exel exporté
    Par lovlov33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/07/2014, 00h02
  2. Réponses: 4
    Dernier message: 14/10/2013, 16h31
  3. Réponses: 5
    Dernier message: 29/12/2008, 14h34
  4. Comment détecter et empecher l'ouverture d'un fichier
    Par FremyCompany dans le forum Framework .NET
    Réponses: 2
    Dernier message: 11/03/2007, 20h35
  5. Comment rafraichir le swf ?
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 13h08

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