Tout est dans le titre, je voudrais savoir comment actualiser une frame, en passant par une autre.
Exemple en cliquant sur un bouton ds "Frame2, actualiser Frame1 ou autre.
Si quelqu'un peut m'éclaicir, merci.
Version imprimable
Tout est dans le titre, je voudrais savoir comment actualiser une frame, en passant par une autre.
Exemple en cliquant sur un bouton ds "Frame2, actualiser Frame1 ou autre.
Si quelqu'un peut m'éclaicir, merci.
bonsoir,
essaie peut être la méthode update()
exouCode:root.update()
Code:frame.update()
essaie :
Code:
1
2
3 frame.Refresh(True) # rafraîchissement de la frame frame.Update() # mise à jour de la frame
OK, j' vais essayer ça ce soir, merci.
Juste un point, je veux raffraichir une frame à partir d'une autre sachant que chacune de ces frames sont dans des classes différentes
bonsoir,
Il faut qu'il existe une relation entre tes frames, que tu ais conservé une reference à la frame à rafraichir dans la frame 'rafraichissante'.
cf ce thread
merci, l'autre post m'a énormément aidé, j'arrive à exécuter une fonction compris dans une autre frame, mais j'arrive pas à créer de fonction de raffraichissement.
Je pense poster un bout de code plus tard. (je ne suis pas sur mon PC)
J'ai un peu avancé, j'arrive à masquer puis afficher la frame "parent"
mais j'arrive pas à la raffraichir.
J'ai un listing de différentes informations qui sont récupérées dans un fichier texte, mais quand je masque puis réaffiche la frame en question, malgré le fichier ayant été modifié puis sauvegardé, le listing reste le même.
mon code:
Ensuite j'arrive bien à éxécuter la fonction comprise dans la classe de l'autre frame:Code:
1
2
3
4
5
6
7
8
9
10
11
12 class AddServerFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, title='Nouvel enregistrement', size=(250, 250) ) self.parent = parent [...] # je passe toutes les lignes qui ne seront pas utiles à la compréhension de mon problème #et un peu plus tard, en faite apres la sauvegarde du nouveau fichier de données, je fait: parentframe = self.parent self.parent.UpdateFrame(parentframe)
Mais j'ai pas le résultat attendu :sCode:
1
2
3
4
5
6
7
8
9
10 class ManageServerFrame(wx.Frame): def __init__(self, parent): self.frame01 = wx.Frame.__init__(self, None, -1, title='Gérer Mes serveurs', size=(440, 370) ) [...] def UpdateFrame(self, frame): frame.Hide() frame.Show()
J'ai essayé:
Code:frame.Update()
sans succès, une des solutions que je ne souhaiterais pas utiliser mais qui me permet quand même d'arriver à peu près au résultat souhaité, est de fermer cette frame, puis de la réouvrir :/Code:frame.Refresh(True)
Si quelqu'un peut m'éclairer, merci.
salut,
tu as surement une fonction qui prend les infos de ton fichier texte pour les inserer dans les controles de ta frame, c'est celle-la qu'il faut executer.
oui, j'ai bien une fonction pour récupérer les infos du fichier texte, mais c'est pas celle-là qui affiche ma "listbox", mais je devrait réussir à le faire, merci pour la piste ;)
Est ce que c'est possible de supprimer ou détruire un élément précédemment créé (pas masquer) parceque j'arrive à appeler ma listebox en passant par une fonction, mais en faite elle se superpose à la précédente :?
Ou si il y à une méthode spécifique... :)
Salut Mysti¢,
je te donne la methode pour trouver les methodes... :
1) Telecharge et installe win32-docs-demos
2) Ouvre wxPython2.x Docs Demos and Tools => wxWidgets Reference
3) Cherche Alphabetical class reference => wxListBox
4) Regarde les methodes propres à la classe, tu trouves:
rien qui correspond à ton besoin...Citation:
Members
wxListBox::wxListBox
wxListBox::~wxListBox
wxListBox::Create
wxListBox:: Deselect
wxListBox::GetSelections
wxListBox::InsertItems
wxListBox::HitTest
wxListBox::IsSelected
wxListBox::Set
wxListBox::SetFirstItem
5) Regarde plus haut:
Les classes parentes, interessant ça :PCitation:
Derived from
wxControlWithItems
wxControl
wxWindow
wxEvtHandler
wxObject
6) Parcours les classes parentes:
le premier :wxControlWithItems
7) cherche par làCitation:
wxControlWithItems
...
Members
wxControlWithItems::Append
wxControlWithItems::Clear
wxControlWithItems:: Delete
wxControlWithItems::FindString
8) Trouvé?Clear :mouarf:
Delete :king:
:yaisse2:
Un grand merci, ça c'est de la méthode :D
J'avais déjà wxPython2.x Docs Demos and Tools d'installé, mais je n'étais jamais aller voir par là.
Ca me fait beacoup de doc dont je connaissait même pas l'éxistence sur mon PC :p, y'a plus qu'à appliquer. Je vais voir ce que je peux faire avec ;)
Voilà j'ai réussi, je me suis vraiment compliqué la vie pour rien alors que la solution étai simple :s
Donc même pas besoin de rafrachir toute la frame.
Il suffisait d'éffacer tout les éléments de ma "CheckListBox"
avecPuis de relire le fichier de donnée, afin d'ajouter les anciennes et nouvelles entrées dans celle-ci.Code:.Clear()
Résolu :yaisse2: