[pyar] WxPython - Dudas de principiante.

matiasgsanchez en gmail.com matiasgsanchez en gmail.com
Mar Mar 22 01:33:26 ART 2011


Faltarìa unicamente el archivo el archivo .xrc que no era la gran
cosa, tiene definidos 2 botones y una textbox.
Los còdigos de arriba estan completos e importan el filePrueba.xrc.
Ahi va entonces:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<resource xmlns="http://www.wxwindows.org/wxxrc" version="2.3.0.1">
	<object class="wxFrame" name="MyFrame1">
		<style>wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL</style>
		<size>291,69</size>
		<title></title>
		<object class="wxBoxSizer">
			<orient>wxHORIZONTAL</orient>
			<object class="sizeritem">
				<option>0</option>
				<flag>wxALL</flag>
				<border>5</border>
				<object class="wxButton" name="btnBoton1">
					<label>Boton1</label>
					<default>0</default>
				</object>
			</object>
			<object class="sizeritem">
				<option>0</option>
				<flag>wxALL</flag>
				<border>5</border>
				<object class="wxTextCtrl" name="txtTextBox">
					<value></value>
					<maxlength>0</maxlength>
				</object>
			</object>
			<object class="sizeritem">
				<option>0</option>
				<flag>wxALL</flag>
				<border>5</border>
				<object class="wxButton" name="m_button5">
					<label>MyButton</label>
					<default>0</default>
				</object>
			</object>
		</object>
	</object>
</resource>

Espero sea ùtil para representar lo que estaba pasando.

Voy a pegarle una leida al enlace.

Gracias!,

Salu2,

Matias.

2011/3/21 PythonJourney <pythonjourney en gmail.com>:
> Hola...
>
> te recomiendo que para poder recibir ayuda con cosas de wxpython, coloques
> un pequeño codigo que pueda ser ejecutado, como lo piden en la lista de
> wxpython.. sin una muestra ejecutable del codigo a veces es dificil ayudar o
> ver el problema en realidad..
>
>
> lo unico que podria decir para ayudarte  es que en este enlace[0] hay una
> buena discusion sobre los EVT_SET_FOCUS
>
> [0] http://www.blog.pythonlibrary.org/2009/08/27/wxpython-learning-to-focus/
> El 21/03/2011 03:41 p.m., matiasgsanchez en gmail.com escribió:
>>
>> Buenas a todos, tuve un poco de tiempo y decidì comenzar a migrar un
>> proyecto que tengo hecho en .NET C# a python. Sin sentido alguno,
>> solamente para aprender. Hice algunas cosas en consola, pero ahora
>> cuando me topè con Wxpython, algunas cosas resultaron un poco
>> extrañas.
>> Estoy usando Eclipse + Pydev y wxFormBuilder.
>>
>> Tiro algunas preguntas puntuales, y lògicamente cualquier crìtica
>> constructiva sobre como desarrollar y buenas pràcticas serà
>> bienvenida.
>>
>> Primero:
>>
>> Porque el EventHandler txtChange, en el siguiente caso se dispara y en
>> el segundo caso no? (No tengamos en cuenta que el MessageBox no para
>> de mostrarse nunca xD, es un bug premeditado
>> ---------------------CASO1----------------------------
>>
>> import wx
>> from wx import xrc
>> import sys
>>
>> class MainFrame(object):
>>
>>     def __init__(self, xml):
>>         self.xml = xml
>>         self.frame = xml.LoadFrame(None,'MyFrame1')
>>         self.frame.Bind(wx.EVT_BUTTON, self.btnClick,
>> id=xrc.XRCID('btnBoton1'))
>>
>>         self.txtTextBox = xrc.XRCCTRL(self.frame, 'txtTextBox')
>>         self.txtTextBox.Bind(wx.EVT_SET_FOCUS, self.txtChange)
>>
>>         self.txtTextBox.SetValue('Valor de prueba')
>>         self.frame.Show()
>>
>>     def btnClick(self, evt):
>>         ret  = wx.MessageBox('Salir?', 'Question', wx.YES_NO |
>> wx.NO_DEFAULT)
>>         if ret == wx.YES:
>>             self.frame.Destroy();
>>             sys.exit(0)
>>
>>     def txtChange(self, evt):
>>         wx.MessageBox('Ventana prueba','Ventana')
>>
>> class proyPrueba(wx.App):
>>
>>     def OnInit(self):
>>         xml = xrc.XmlResource('filePrueba.xrc')
>>         self.MainFrame = MainFrame(xml)
>>         return True
>>
>>
>> if __name__ == '__main__':
>>     app = proyPrueba(0)
>>     app.MainLoop()
>>
>>
>>
>> ------------------------------------CASO2----------------------------------------
>> Para simplificar, lo unico que modifiquè fue la asignaciòn de la
>> variable txtTextBox. Osea, directamente creo el eventhandler en una
>> linea.
>> (http://wiki.wxpython.org/index.cgi/XRCTutorial)
>>
>> No funciona el wx.EVT_SET_FOCUS pero si el wx.EVT_BUTTON. Algùn error
>> conceptual que no estè teniendo en cuenta?
>>
>> import wx
>> from wx import xrc
>> import sys
>>
>> class MainFrame(object):
>>
>>     def __init__(self, xml):
>>         self.xml = xml
>>         self.frame = xml.LoadFrame(None,'MyFrame1')
>>         self.frame.Bind(wx.EVT_BUTTON, self.btnClick,
>> id=xrc.XRCID('btnBoton1'))
>>         self.frame.Bind(wx.EVT_SET_FOCUS, self.txtChange,
>> id=xrc.XRCID('txtTextBox'))
>>
>>         self.frame.Show()
>>
>>     def btnClick(self, evt):
>>         ret  = wx.MessageBox('Salir?', 'Question', wx.YES_NO |
>> wx.NO_DEFAULT)
>>         if ret == wx.YES:
>>             self.frame.Destroy();
>>             sys.exit(0)
>>
>>     def txtChange(self, evt):
>>         wx.MessageBox('Ventana prueba','Ventana')
>>
>> class proyPrueba(wx.App):
>>
>>     def OnInit(self):
>>         xml = xrc.XmlResource('filePrueba.xrc')
>>         self.MainFrame = MainFrame(xml)
>>         return True
>>
>>
>> if __name__ == '__main__':
>>     app = proyPrueba(0)
>>     app.MainLoop()
>>
>>
>> Segundo:
>>
>> Hay alguna manera de lograr que el autocompletado funcione tambien
>> para las variables que van a asumir el tipo en tiempo de ejecuciòn?.
>> No se si me explico correctamente. Mejor ejemplifico.
>> La variable txtTextBox que uso en el primer ejemplo, para guardar la
>> referencia al objeto textBox, cuando tipeo "txtTextBox.(punto)" no
>> tira ninguna propiedad del objeto. Ahora bien, para ver las
>> propiedades disponibles del textbox estoy haciendo "wx.TextCtrl....".
>> En ese caso si me muestra las props y me tengo que fijar la que estoy
>> buscando, copiar pegar. Es medio molesto, seguramente hay alguna otra
>> alternativa. Alguien que no quiera verme maldecir en todos los
>> idiomas, me darìa algun consejo?
>>
>>
>> Dudas ya està. Ahora queda el espacio para aquellos que quieran
>> recomendarme algo:
>> Tips:
>> 1) Maneras de definiciòn de handlers simples.
>> 2) Yo estoy generando el archivo xrc y levantandolo como recurso. Es
>> correcto? Hay alguna manera mas facil?
>>
>> 3) etc, etc, etc...
>>
>> Desde ya gracias. Deberìa haber preguntado todas estas cosas en la
>> Pyar de BsAs que habia muy buena onda, pero sinceramente todavia
>> estaba sorprendido por la sintaxis nada mas, que no es poco xD.
>>
>> Salu2 a todos!,
>>
>> Matias.
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



More information about the pyar mailing list