je un cadre WxPython contenant un seul élément, par exemple:Obtenir un élément de panneau WxPython pour développer
class Panel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.text = wx.StaticText(self, label='Panel 1')
J'ai un cadre contenant plusieurs panneaux, dont celui-ci, et les dimensions sont régies par calibreurs. Je voudrais que ce StaticText
se développe. L'utilisation d'un BoxSizer
contenant uniquement le texte et le réglage du drapeau wx.EXPAND
fait l'affaire, mais il semble stupide d'utiliser un calibreur pour un seul élément.
Une solution plus simple?
(je pourrais ajouter le StaticText
au calibreur du cadre parent directement, mais pour ma conception, il est plus logique de commencer par un cadre directement.)
Je viens de réaliser que lors de la création d'un BoxSizer
avec un élément ne fonctionne pas avec wx.VERTICAL
:
class Panel1(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.BackgroundColour = 'red'
sizer = wx.BoxSizer(wx.VERTICAL)
self.Sizer = sizer
self.list = wx.ListBox(self, choices=[str(i) for i in xrange(100)])
sizer.Add(self.list, 0, wx.EXPAND)
sizer.Fit(self)
Bien sûr, il est ok avec un article, mais si je veux ajouter un élément verticalement plus tard et encore faire les deux expand (par exemple, lorsque la fenêtre de l'utilisateur est étendu)?
Édition: ah, je viens de découvrir que cette proportion doit être utilisée pour faire croître les boxsizers dans les deux sens. (Par exemple, remplacez 0 par 1 dans l'appel BoxSizer.Add
.)
Merci. Avez-vous une idée concernant mon édition? –
Oui, la proportion fait grandir dans la direction du calibreur. wx.EXPAND l'agrandit pour remplir l'autre direction. Utilisez-les tous les deux pour grandir dans les deux directions. – FogleBird