Bonsoir,

J'ai un problème avec un statictext dans ma fenêtre. Je m'explique:

J'ai un StaticText assez long ( au vue de la taille de ma fenêtre ) suivis de deux autres éléments ( un autre StaticText et un TextCtrl ).

Le tout est contenu dans un panel muni d'un GridBagSizer muni de trois colonnes mouvante ( AddGrowableCol ). Ce panel est contenu lui même dans un Panel qui fait la moitié de la fenetre.

Le problème est qu'à l'ouverture de ma fenêtre ( et lors de son redimensionnement ) mon panel déborde à droite, et du coup on ne vois qu'une partie de mon TextCtrl et pas du tout mon deuxième StaticText, si la fenêtre n'est pas assez grande pour tout contenir sur une seule ligne.

Le problème est donc que mon premier StaticText ( le long ) ne wrap pas automatiquement sur plusieurs lignes. J'ai bien essayer de le wrapper à la main en bindant le panel qui le contient avec l'evenement EVT_SIZE, mais cela bloque le sizer du coup ( qui dois surement l'utiliser aussi )

Auriez-vous une solution pour obliger le StaticText a wrapper correctement, ou qu'il le fasse automatiquement de manière correcte?

Voici le code, très épuré
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
20
21
22
23
24
25
26
27
28
 
class PanneauBasGauche(wx.Panel):
    def __init__(self, parent, programme):
        wx.Panel.__init__(self, parent);
        self.parent = parent;
        self.programme = programme;
 
        self.sizer = wx.GridBagSizer();
        self.sizer.AddGrowableCol(0);
        self.sizer.AddGrowableCol(1);
        self.sizer.AddGrowableCol(2);
        self.sizer.AddGrowableRow(0);
        self.sizer.AddGrowableRow(1);
        self.sizer.AddGrowableRow(2);
 
        self.SetSizer(self.sizer);
        inter = wx.CheckBox(self, label = Data.TEXTEBOUTONINTERUPTION, style = wx.ALIGN_RIGHT|wx.CHK_2STATE);
        texteTemps = wx.StaticText(self, label = Data.TEXTEBOUTONTEMPS, style = wx.ALIGN_RIGHT);
        texteUniteTemps = wx.StaticText(self, label = Data.TEXTEUNITETEMPS);
        valTemps = wx.TextCtrl(self, value = str(Data.ATTENTEPARDEFAUT));
        boutonRegen = wx.Button(self, label = Data.TEXTEBOUTONREGEN);
        self.sizer.Add(inter, (0,1), flag = wx.ALIGN_CENTER);
        self.sizer.Add(texteTemps, (1,0), flag = wx.ALIGN_CENTER);
        self.sizer.Add(valTemps, (1,1), flag = wx.ALIGN_CENTER);
        self.sizer.Add(texteUniteTemps,(1,2), flag = wx.ALIGN_CENTER);
        self.sizer.Add(boutonRegen, (2,1), flag = wx.ALIGN_CENTER);  
        self.Update();
        self.sizer.Layout();
Merci d'avance