Domanda

Esiste un modo per modificare l'etichetta di uno StaticBoxSizer su wxPython dopo l'inizializzazione?

Non sono riuscito a trovare nulla sulla documentazione di wxPython.

Grazie

È stato utile?

Soluzione

Quando crei un wx.StaticBoxSizer , devi passare un wx.StaticBox come primo argomento dell'inizializzatore, questo è ciò che devi modificare per cambiare l'etichetta. Se guardi le gerarchie di classi, vanno come segue:

  • oggetto - > Oggetto: > EvtHandler - > Finestra - > Controllo - > StaticBox
  • oggetto - > Oggetto: > Sizer - > BoxSizer - > StaticBoxSizer

Come avrai capito, SetLabel non è un metodo del sizer o di uno dei suoi genitori, ma vive nella classe Control, quindi la scatola lo eredita.

# creating the static box sizer
self.my_box = wx.StaticBox(self.panel, wx.ID_ANY, "Spam, spam, spam")
self.sizer_static_box = wx.StaticBoxSizer(self.my_box)

# then do something like this later        
self.my_box.SetLabel("I hate spam!")
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top