PythonCard

Introducción

PythonCard es un conjunto de herramientas de construcción GUI para crear aplicaciones de escritorio multiplataforma en Windows, Mac OS X, y Linux, usando Python.

La motivación de PythonCard es "Las cosas simples deberían ser simples, y las complejas deberían ser posibles"

PythonCard es para vos si queres desarrollar aplicaciones gráficas de manera rápida y fácil con un mínimo esfuerzo y código. Es parecido a Visual Basic Clásico, con respecto a la creación visual de interfaces gráficas y programación por eventos.

PythonCard usa wxPython. Si estás familiarizado con wxPython, se puede ver a PythonCard como una manera simple de hacer programas wxPython con un gran conjunto de ejemplos y herramientas que se pueden copiar y mejorar para crear aplicaciones multiplataforma.

Como instalar PythonCard:

Linux (Debian y derivados)

Pythoncard esta soportado en Etch, así que su instalación es bastante simple

apt-get install pythoncard

Windows

Ejemplos

Si todo se instaló correctamente, podemos probar los ejemplos que vienen con PythonCard, menú Inicio, PythonCard, Sample Launcher (o buscar el script en C:\Python25\Lib\site-packages\PythonCard\samples\samples.pyw o similar para la plataforma en que estemos). Debería aparecer la pantalla de ejemplos (ver sitio de PythonCard). En ella se puede encontrar los programas de ejemplos en las siguientes categorías:

Si algo anda mal y no se muestra la pantalla de ejemplos, podemos probar lo siguiente para ver que esta fallando en una consola Python:

import wx
wx.version() # debería imprimir '2.8.7.1 (msw-unicode)' o similar

from PythonCard import model
rsrc = {'application':{'type':'Application', 'name':'Minimal',
    'backgrounds': [{'type':'Background','name':'bgMin',
        'title':'Prueba','size':(200, 100),'components': []}]} }

model.Application(model.Background, None, rsrc).MainLoop()

Debería aparecer una ventanita con título "Prueba".

Además, PythonCard dispone de características de depuración (depurar menú, loggeo, visor de mensajes, visor del espacio nombres, editor de propiedades, shell). Estas opciones se pueden activar al ejecutar los ejemplos para ver como funcionan.

Editor de Pantallas

PythonCard viene con un editor de pantallas (resource/layout editor), se encuentra en el menu Inicio, PythonCard, Layout Editor (o buscar el script en C:\Python25\Lib\site-packages\PythonCard\tools\resourceEditor\layoutEditor.py o similar para la plataforma en que estemos). Debería aparecer la pantalla de edición (ver imágenes y más información en sitio de PythonCard):

pycard1.png

Ejemplo de como crear una aplicación de prueba (que tome una expresión/comando python ingresado por el usuario y devuelva su resultado):

Editor de Código

PythonCard viene tambien con un editor de código, se encuentra en el menú Inicio, PythonCard, Code Editor (o buscar el script en C:\Python25\Lib\site-packages\PythonCard\tools\resourceEditor\codeEditor.py o similar para la plataforma en que estemos). También esta el Tabbed Code Editor que nos permite editar múltiples archivos y seleccionar los componentes y sus eventos. Debería aparecer la pantalla de edición de código (ver imágenes y más información en sitio de PythonCard):

pycard2.png

Continuando con el ejemplo de como crear una aplicación de prueba (ver sección anterior):

Código completo final del ejemplo:

from PythonCard import model
from PythonCard import dialog

class MyBackground(model.Background):

    def on_initialize(self, event):
        # if you have any initialization
        # including sizer setup, do it here
        pass

    def on_btnEjecutar_mouseClick(self, event):
        comando = self.components.txtComando.text
        resultado = str(eval(comando))
        self.components.txtResultados.text = resultado

    def on_menuFileAyuda_select(self, event):
        dialog.alertDialog(self, 
            'Este programa de prueba ejecuta el comando ingresado por el usuario', 
            'Ayuda')

if __name__ == '__main__':
    app = model.Application(MyBackground)
    app.MainLoop()

Nota: Por ser un ejemplo se obviaron temas de manejo de excepciones y cuestiones avanzadas. Se pueden descargar los archivos terminados:

Pantalla del ejemplo ejecutandose:

prueba.png

PythonCard (última edición 2010-02-10 17:44:06 efectuada por carlosmaldonado)