[PIPython] Eliminare dinamicamente controlli in wxpython

Luca Marrocco buildup
Mar 11 Gen 2005 12:38:59 CET


On Tue, 11 Jan 2005 11:05:30 +0100
Gianluca Di Carlo <gianluca a letreporte.it> wrote:

> Salve, in un'applicazione wxpython com'è possbilke eliminare 
> dinamencamente un controllo?
> In base alle scelte dell'utente dovrei eliminare un controllo wxListCtrl 
> e sostituirlo con un controllo wxTreeCtrl e viceversa.
> E' possibile?

uhm, dipende da come hai composto la finestra di dialogo. Di solito
utilizzo un funzione apposita che si occupa di fare il layout
dell'finestra e dei controlli (widget) in essa contenuti... quindi
chiamando tale funzione impongo alla finestra di rifarsi il layout!

Un esempio potrebbe essere piu' esplicativo:

# i puntini indicano i parametri che vuoi
class ContenitoreFrame(wxFrame):
	def __init__(self, ...):
		wxFrame.__init__(self, ...)
		
		self.caso_uno()
		self.do_layout()

	def caso_uno(self):
		# il parent del contenuto e' ContenitoreFrame ovvero self
		self.contenuto = wxListBox(self, ...)

	def caso_due(self):
		# il parent del contenuto e' ContenitoreFrame ovvero self
		self.contenuto = wxTreeCtrl(self, ...)

	def do_layout(self):
		top_sizer = wxBoxSizer(wxVERTICAL)
		top_sizer.Add(self.contenuto)

		self.SetSizer(top_sizer)
		self.SetAutoLayout(True)
		self.Layout()

cosi' dove ti serve puo' richiamare la coppia di funzioni:
self.caso_uno()
self.do_layout()

oppure

self.caso_due()
self.do_layout()

che inseriscono nel contenitore rispettivamente una wxListBox ed una wxTreeCtrl

Luca


More information about the Python mailing list