Saludos y wxStaticText e historias afines

Jordi Ivars jordi en ultimobyte.es
Mie Feb 12 19:53:50 CET 2003


Hola a todos, soy nuevo en la lista asi que lo primero que toca es saludaros a todos:).

En fin, os cuento. Resulta que ya llevo tiempo tocando cosillas de python, mas a nivel curiosidad que nada, aunque ultimamente me ha estado dando mas el mono de python que de costumbre y he empezado a darle un poco de caña y resulta que me han salido un par de problemones, que seguro que deben ser sencillos de resolver aunque lleve un par de dias dandoles vueltas.

Empecemos por el primero. Estoy haciendo una aplicacion grafica con wxpython para ir practicando con ventanas. Dibujo la ventana principal de tal manera, igualito que en el tutorial de wxpython.org:

----
class MainWindow(wxFrame):
	def __init__(self,parent,id,title):
	wxFrame.__init__(self,parent,-4,title,size=(500,300),style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
---

Y luego le añado un texto en el centro de la ventana con:

----
	self.control=wxStaticText(self,-1, "\n\nBienvenido y tal", (0,0),style=wxALIGN_CENTER)
----

Luego creo la barra de estado, menus y demas. Hasta aqui todo bien. La funcion de dicha aplicacion consiste en seleccionar una opcion del menu y automaticamente en la ventana principal esta tiene que cambiar de texto y mostrar uno nuevo en vez del anterior.
O sea, saltar a una def de un nuevo menu equivale a borrar el texto de la ventana y sustituirlo por otro. No es complicado hacerlo, el problema es que se superponen (o lo pones arriba o abajo) y eso lo soluciono poniendo un self.control.Destroy() antes de ejecutar cada wxStaticText. Eso funciona, (me lo parece a mi), ya que el texto anterior desaparece y solo sale el nuevo.

El problema esta en que si a ese texto le añado un:

--
self.control = wxChoice(self, 40, (80, 50), choices = lista)
--

o algo como un wxStaticBox y demas, luego, al saltar al siguiente menu, el self.control.Destroy() es incapaz de eliminar eso y el texto que sale se superpone al wxChoice o wxStaticBox o el que sea.

La pregunta es...¿Existe alguna manera de borrar totalmente el contenido de una ventana, tenga lo que tenga, dejandola solamente con los menus y nada mas (algun self.clear() o algo asi, no se)?

Y nada solamente eso. Perdonad la extension del mensaje y la lista de tonterias varias que haya o pueda ir soltando (mas que nada por conceptos, no me dedico a la programacion "profesional":).

Y eso, gracias a todos y saludos.

Ear3ndil

		




Más información sobre la lista de distribución Python-es