OVH Cloud OVH Cloud

Utiliser 2 wx.Panel alternativement dans une même page de wx.Notebook

1 réponse
Avatar
Trems
Bonjour

Je débute avec wxPython et j'ai un problème que je n'arrive pas à résoudre.
(wxPython 2.5.1, Python 2.3)

J'ai une frame splitter en deux
a gauche : 2 boutons,
myButton1 = wx.Button(myLeftSplitter, ...)
myButton2 = wx.Button(myLeftSplitter, ...)
self.Bind(wx.EVT_BUTTON, self.OnClick1, myButton1)
self.Bind(wx.EVT_BUTTON, self.OnClick2, myButton2)

a droite un notebook avec une seule page. La page contient un panel
myNotebook = wx.Notebook(myRightSplitter, ...)
myDefaultPanel = wx.Panel(myNotebook, ...)
myNotebook.AddPage(myDefaultPanel, ..., "My Absolutely Single Page")

Je souhaite qu'un click sur myButton1 remplace le panel myDefaultPanel
par le panel myNewPanel dans l'unique page "My Absolutely Single Page"
def OnClick1(self, event):
myDefaultPanel est remplacé par myNewPanel (qui contient des
données différentes) dans "My Absolutely Single Page"

Ensuite un click sur myButton2 doit permettre de revenir au panel par
defaut dans la page
def OnClick2(self, event):
myNewPanel est remplacé par myDefaultPanel dans "My Absolutely
Single Page"

L'idee est à terme d'avoir une structure avec un arbre à gauche, un
notebook à droite contenant une page par fonctionnalité. La page
montrant des données différentes selon que l'on soit sur un noeud ou une
branche de l'arbre.


[arbre] onglet : [fonction facture]
Groupe -> recapitulatif facture de tous les individus
- individu1 -> facture detaille individu1
- individu2 -> facture detaille individu2
...

Pour info, l'appli se veut très simple à utiliser.
Elle doit permettre à une responsable de crèche collective pas du tout
"informaticienne" d'administrer les présences des enfants et la
facturation mensuelle.

Merci pour votre aide

Tremeur

1 réponse

Avatar
Xavier Combelle
Je souhaite qu'un click sur myButton1 remplace le panel myDefaultPanel
par le panel myNewPanel dans l'unique page "My Absolutely Single Page"
def OnClick1(self, event):
myDefaultPanel est remplacé par myNewPanel (qui contient des
données différentes) dans "My Absolutely Single Page"

Ensuite un click sur myButton2 doit permettre de revenir au panel par
defaut dans la page
def OnClick2(self, event):
myNewPanel est remplacé par myDefaultPanel dans "My Absolutely
Single Page"


Lors du click, tu pourrait pas utiliser une commande du genre
myOldPanel.unpack()
myNewPanel.pack()