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 confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    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 chevronné
    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
    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 confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    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 chevronné
    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
    Par défaut
    En appelant ta boucle de remplissage, ça devrait afficher les nouvelles valeurs ?

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    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 chevronné
    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
    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 confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    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 confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    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 chevronné
    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
    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 confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    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 confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

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

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    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, 01h02
  2. Réponses: 4
    Dernier message: 14/10/2013, 17h31
  3. Réponses: 5
    Dernier message: 29/12/2008, 15h34
  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, 21h35
  5. Comment rafraichir le swf ?
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 14h08

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