[wx] mise à jour de sizer

mise à jour de sizer [wx] - Divers - Programmation

Marsh Posté le 10-05-2005 à 20:47:13    

salut
je commence à utiliser wx (wxPython, mais ceux qui connaissent wxWidgets doivent pouvoir me répondre aussi) et j'ai quelques problèmes avec un sizer. j'ai consulté la doc mais je n'ai pas trouvé la solution. voici mon problème :
dans ma fenetre, j'ai un sizer tout simple, vertical, qui contient des boutons. à un moment donné, j'ai besoin d'y ajouter un notebook. ce que je fais. ça semble marcher mais il n'y a pas de mise à jour de l'affichage, puisque le notebook n'apparaît pas. comment faire pour mettre à jour ce sizer ? j'ai pensé à Show, avec l'option recursive=True, mais ça ne semble pas tout à fait adapté.
qq'un pourrait m'aider ?
merci

Reply

Marsh Posté le 10-05-2005 à 20:47:13   

Reply

Marsh Posté le 10-05-2005 à 22:16:14    

Appelle la méthode Layout() après toute modification du contenu d'un sizer.

Reply

Marsh Posté le 11-05-2005 à 11:50:30    

Lam's a écrit :

Appelle la méthode Layout() après toute modification du contenu d'un sizer.


dans ce cas je ne comprend pas pourquoi ça ne marche pas  :sweat:  
un peu de code :
 
l'initialisation du sizer dans le constructeur :

Code :
  1. class Fenetre(wx.Frame):
  2.    
  3.     def __init__(self, parent, id, titre, croknotes):
  4.         wx.Frame.__init__(self, parent, id, titre, pos=wx.DefaultPosition,
  5.                           size=wx.DefaultSize,
  6.                           style=wx.DEFAULT_FRAME_STYLE)
  7. [...]
  8.         self._sizer = wx.BoxSizer(wx.VERTICAL)
  9.         self._sizer.Add(boiteBtns)
  10.         self.SetSizer(self._sizer)


 
puis la fonction appellée quand je veux ajouter qqchose dans le sizer (ici, un bouton) :

Code :
  1. def notebookCategories(self):
  2.         self._sizer.Add(wx.Button(self, wx.ID_SAVEAS))
  3.         self._sizer.Layout()


et... il ne se passe rien quand cette fonction est appelée. qu'est-ce que je n'ai pas compris ?
merci


Message édité par psychotek le 11-05-2005 à 11:54:35
Reply

Marsh Posté le 12-05-2005 à 12:41:20    

[:valentinorossi]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed