Continuendo con la traducción del tutorial introductorio de wxPython. No olvides visitar desde la primera parte de esta traduccion
Construyendo un editor de textos simple
En este tutorial vamos a construir un editor de textos simple. En el proceso, exploraremos varios widgets, y aprenderemos sobre caracteristicas como eventos y callbacks.
Primeos pasos
El primer paso es hacer un marco simple con un text box editable dentro de el. Un text box se lo hace con el widget wx.TextCtrl . Por defecto, el text box es uncampo de línea simple, pero el parametro wx.TE_MULTILINE permite entrar miltiples líneas en el texto.
#!/usr/bin/env python
import wx
class MyFrame(wx.Frame):
""" Simplemente derivamos una nueva clase de Frame [Marco]. """
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200,100))
self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.Show(True)
app = wx.App(False)
frame = MyFrame(None, 'Editor simple')
app.MainLoop()
En este ejemplo, derivamos desde wx.Frame y sobreescribimos su metodo __init__ . Aquí declaramos un nuevo wx.TextCtrl que será un simple control de edicion de texto. Notece que desde que MyFrame ejecuta el self.Show() dentro de su método __init__ , no necesitamos seguir llamando el frame.Show() de manera explícita.
Continuando con la información, ya a estas alturas lejanas en el tiempo sobre python, voy a tratar de hacer la traducción del Getting Started with wxPython, del que no se si exista alguna traducción actualmente, pero igual pondré mi granito de arena al hacer mi versión traducida.
Más información y el original pueden encontrarlo en wxpython.org
Empezando con wxPython
Primer aplicacion: Hola Mundo
Como tradición, vamos a empezar escribiendo una pequeña aplicación “Hola Mundo”. Este es el código:
#!/usr/bin/env python
import wx
app = wx.App(False) # Creamos una nueva aplicacion, no redireccionamos stdout/stderr a una ventana.
frame = wx.Frame(None, wx.ID_ANY, "Hola Mundo") # Un Marco(Frame)es una ventana de alto nivel(top-level window).
frame.Show(True) # Mostramos el marco.
app.MainLoop()
Explicación del código
app = wx.App(False)
Cada aplicación wxPython es una instancia de wx.App. Para las aplicaciones más sencillas puedes usar wx.App como tal. Cuando tienes aplicaciones más complejas necesitarás extender la clase wx.App class. El parametro “False” significa “no redireccionar stdout y stderr a una ventana”.
wx.Frame(None,wx.ID_ANY,"Hello")
Un wx.Frame es una ventana en top-level. La sintaxus es x.Frame(Padre, Id, Titulo). La mayoría de contructores tienen esta forma (un objeto padre, seguido por un id). En este ejemplo, nosotros usamos None para “sin padre” y wx.ID_ANY para que wxWidgets escoja un id por nosotros.
frame.Show(True)
Hacemos el marco visible “mostrandolo”.
app.MainLoop()
Finalmente, empezamos el MainLoop de la aplicacion cuyo role es de manipular los eventos.
Nota: Casi siempre querras usar wx.ID_ANY u tro proveedor estandard de ID de wxWidgets. Puedes hacer tus proios IDs pero no hay razón para hacerlo.
Ejecuta el programa y verás una ventana como esta:
Windows or Marcos[Frames]?
Cuando las personas hablan de GUIs, comunmente hablan de Windows [ventanas], menús e íconos. Naturalmente, encontes, pidrías esperar que wx.Window represanta una ventana en la pantalla. Desafortunadamente, este no es el caso. Una wx.Window es la clase base de la que todos los elementos visuales deriban (botons, menus, etc) y lo que nosotros normalmente pensamos que es una ventana de un programa es un wx.Frame [un marco]. Esta es una inconsistencia desafortunada que deja mucha confusión a los nuevosusuarios
Y es que Canonical quiere dar mucho más de que hablar en la nueva versión de nuestro distro favorito, y a mostrado al mundo lo que se viene en su nueva versión, la 10.04, que va desde el cambio de logo hasta cambios de tema [adiós al ta criticado tema human] y linea gráfica del website.
Con relación al tema, se puede descrargar en nuevo tema y el pack de iconos . Pero si usas el beta del Lucid, basta con esta simple línea y paciencia: sudo apt-get update && sudo apt-get dist-upgrade
Parece que hoy es el día de los videos [2 en el mismo día], y es que este es de otro mundo. Recomendado que lo vean primero en el embebido, para que sepan de que se trata y después vean como se le saca provecho a una publicidad en línea. Video en Vimeo
Y es que creo que pocos lo habían notado antes, y ahora entiendo por que era fácil recordar el bendito logo de LG. Y esta es la prueba irreffutable de la inspiración y del plagio.
Conversando con más de un amigo sobre esto de linux, siempre vienen preguntas como aquella de como reemplazar lo del control de dominios y otras cosas, por lo que no me queda más que dejar plasmadas unas pistas de como ir implementando estos servicios, y así de yapa no olvidarlo cuando se venga el caso.
El Software OpenLDAP es una implementación opensource de el Lightweight Directory Access Protocol [protocolo ligero de acceso a directorio]. Quebien mezclada con samba, y la potencia de administrar los recursos y demas dispositivos permitirá tener un active desktop sin virus [linux rules] multiplataforma [windows, linux, y otras hierbas]. Una herramienta que cualquier administrador de sistemas no debe de dejar de tener a mano, por si la ocación lo amerita.
Una simple cusqueda en San Google y encontrarás como hacer para implantar esta solución
visitar: OpenLDPA