2013/5/14 Txema Vicente <tx...@nabla.net>:
> El RAD tiene muy buena pinta.

Gracias, espero terminarlo este año.
Estuve tratando de reusar conceptos de otros IDEs (drPython, Boa,
PythonWin), aunque bastante más simplificado y compacto para intentar
que sea relativamente más mantenible.

>> El 14/05/2013 0:48, Mariano Reingart escribió:
>>
>> Por el error, te falta la imágen (wxBitmap::CreateFromImage(): invalid
>> image).
>> Deberías bajarte el archivo zip que contiene las imagenes (fondo
>> tile.bmp, botones trash.gif y edit.gif):
>>
>> https://gui2py.googlecode.com/files/gui2py-0.9b.zip
>>
>> Gracias por reportarlo, voy a ver de agregarle una advertencia o
>> excepción y una aclaración en la guía de instalación.
>>
>> Si podés, avisame si te funciona para descartar que haya algún otro
>> inconveniente.
>
>
> Era ese zip sobre el que estaba probando, en una carpeta en el escritorio,
> despues de haber instalado el exe.

Fijate de cambiar al directorio de la carpeta donde descomprimieste gui2py:

cd Escritorio\gui2py
python -m gui.tools.designer sample.pyw

Me parece que es un tema de rutas, tendría que agregare al diseñador
que busque el path absoluto según el .pyw.

Si me confirmas que te funciona con las imagenes y es por este tema,
ya veo de ajustar el código.

> He modificado graphic.py/Bitmap.load_file, en lugar "self._filename =
> filename":
>
>             if os.path.exists(filename):
>                 self._filename = filename
>             else:
>                 print "Warning: Image %s not found" % filename
>                 self._bits = wx.EmptyBitmap(10,10)
>                 return

Agregado, gracias!

https://code.google.com/p/gui2py/source/detail?r=461ab8df95bddf3c665910f4344d902b327af5d5

(lo simplifiqué un poco y cambié el print por un warn)

Por lo que te comentaba me imagino que a filename tendria que
agregarle el path base del script, pero no se me ocurre una manera
fácil de hacerlo (se podría usar __file__ en sample.pyw pero no sería
tan portable), asique quizás sea mejor hacerlo en el diseñador.

> Y ya funciona el sample.pyw, pero con algunas cosas en negro. Lo único es
> que va tirando errores AttributeError: 'SuperToolTip' object has no
> attribute '_superToolTip' [1]

Si, el tema de _superToolTip parece un problema de esa biblioteca,
tengo que encontrar como deshabilitarlo or removerlo.
Igualmente es algo relativamente inofensivo, no debería causar mayores
inconvenientes (ver abajo como omitir el mensaje).

> Por otro lado, si quiero probar los controles uno a uno me casca con
> "ValueError: Attempted relative import in non-package", y con razón.
> "Relative imports for intra-package imports are highly discouraged." [2].

Me parece que es porque no lo estas usando como un paquete, sería:

python -m gui.controls.button

python -m gui.controls.listview

Igualmente esos tests en algun momento habrá que pasarlos como
unittests en una carpeta propia, posiblemente con un import absoluto
si no va a ser un sub-paquete.

Para más info ver:

http://www.python.org/dev/peps/pep-0328/

> Aunque son detalles, son muy importantes, porque por muy bueno que sea un
> proyecto, uno que lo baja para probarlo por primera vez te lo descarta en
> dos minutos si empieza a ver errores, y siempre toca donde no tiene que
> tocar.

Totalmente, gracias por reportarlo
Por estos temas estoy liberando las versiones alfa, para ir viendo los
comentarios y sugerencias

> Sigo trasteando, saludos.
>
> ---------------------------
> Nota [1]
>
> C:\Users\txema>c:\python27\python -m gui.tools.designer
> Warning: Image tile.bmp not found
> Warning: Image edit.gif not found
> Warning: Image edit.gif not found
> BMP <gui.graphic.Bitmap instance at 0x03AA8B48>
> Warning: Image trash.gif not found
> Warning: Image trash.gif not found
> BMP <gui.graphic.Bitmap instance at 0x03AB5E18>
> basic creation timing: t1 - t0: 0.239000082016
>
> Traceback (most recent call last):
>   File
> "c:\python27\lib\site-packages\wx-2.9.4-msw\wx\lib\agw\supertooltip.py",
> line 898, in OnWidgetEnter
>     if self._superToolTip:
> AttributeError: 'SuperToolTip' object has no attribute '_superToolTip'
>
> Traceback (most recent call last):
>   File
> "c:\python27\lib\site-packages\wx-2.9.4-msw\wx\lib\agw\supertooltip.py",
> line 931, in OnWidgetLeave
>     if self._superToolTip:
> AttributeError: 'SuperToolTip' object has no attribute '_superToolTip'

Como dije arriba, no encontré la forma para deshabilitarlo y que no
arroje este error (que igualmente es prácticamente inofensivo).
Quizas lo remueva completamente y lo reemplaze con un sistema de ayuda
html o similar.
Para evitarlo podes comentar la linea 598 de designer.py:

        ##wellcome_tip(root.wx_obj)

Como simplemente se usa para el mensaje de bienvenida, no debería
afectar al resto de las funciones.

> Nota [2]
>
>
> Traceback (most recent call last):
>   File "button.py", line 13, in <module>
>     from ..event import FormEvent
> ValueError: Attempted relative import in non-package
>
> http://www.python.org/dev/peps/pep-0008/
>
> Le he metido esto para verlos:
> sys.path.insert(0,
> os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
> from gui.event import FormEvent

Nota: justamente para evitar esos problemas usé el import relativo, y
así poder probarlo más facilmente sin necesidad de instalar el paquete
o modificar el sys.path.
Si querés ejecutarlo directamente, podes ver de agregarle __package__

http://www.python.org/dev/peps/pep-0366/

Nuevamente gracias por los comentarios

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a