Cursowxpython

Páginas: 11 (2544 palabras) Publicado: 28 de mayo de 2015
Universidad de
Deusto
.
.
.
.
ESIDE

Curso wxPython
Dr. Diego Lz. de Ipiña Gz. de Artaza
http://paginaspersonales.deusto.es/di
pina
Cursos de Julio ESIDE, 14 Julio

Universidad de
Deusto
.
.
.
.
ESIDE

Contenidos



Introducción
wxPython: cross-platform GUI toolkit









Primeros pasos
Controles
Eventos
Dibujando en wxPython

wxGlade
Ejemplo: Tres en Raya modo gráfico
Conclusión Universidad de
Deusto
.
.
.
.
ESIDE

Programación de GUIs en
Python


Tkinter es la GUI toolkit que por defecto viene con
Python (http://www.python.org/doc/current/lib
/module-Tkinter.html)




Basada en Tcl/tk, no tiene apariencia nativa
Es lenta pero su uso es muy sencillo
Pmw (Python meta widgets) (
http://pmw.sourceforge.net/)




Componentes más elaborados encima de Tkinter

Existen otrastoolkits para generación de GUIs:


wxPython (http://www.wxpython.org/)




Pythonwin (
http://www.python.org/windows/pythonwin/)




Apariencia nativa, basado en wxWidgets
(multiplaforma), muy rápida

Solamente para Windows, usa directamente la API de
Windows

PyGTK (http://www.pygtk.org/)

Universidad de
Deusto
.
.
.
.
ESIDE

Ejemplo Tkinter I
# gui/tkinterwatch.py
from Tkinter import *import time, sys
class StopWatch(Frame):
""" Implements a stop watch frame widget. """
def __init__(self, parent=None, **kw):
Frame.__init__(self, parent, kw)
self._start = 0.0
self._elapsedtime = 0.0
self._running = 0
self.timestr = StringVar()
self.makeWidgets()
def makeWidgets(self):
""" Make the time label. """
l = Label(self, textvariable=self.timestr)
self._setTime(self._elapsedtime)l.pack(fill=X, expand=NO, pady=2, padx=2)
def _update(self):
""" Update the label with elapsed time. """
self._elapsedtime = time.time() - self._start
self._setTime(self._elapsedtime)
self._timer = self.after(50, self._update)
def _setTime(self, elap):
""" Set the time string to Minutes:Seconds:Hundreths """
minutes = int(elap/60)
seconds = int(elap - minutes*60.0)
hseconds = int((elap - minutes*60.0 -seconds)*100)

Universidad de
Deusto
.
.
.
.
ESIDE

Ejemplo Tkinter II
def Start(self):
""" Start the stopwatch, ignore if running. """
if not self._running:
self._start = time.time() - self._elapsedtime
self._update()
self._running = 1
def Stop(self):
""" Stop the stopwatch, ignore if stopped. """
if self._running:
self.after_cancel(self._timer)
self._elapsedtime = time.time() - self._startself._setTime(self._elapsedtime)
self._running = 0
def Reset(self):
""" Reset the stopwatch. """
self._start = time.time()
self._elapsedtime = 0.0
self._setTime(self._elapsedtime)
if __name__ == '__main__': root = Tk()
sw = StopWatch(root)
sw.pack(side=TOP)
Button(root, text='Start', command=sw.Start).pack(side=LEFT)
Button(root, text='Stop', command=sw.Stop).pack(side=LEFT)
Button(root, text='Reset',command=sw.Reset).pack(side=LEFT)
Button(root, text='Quit', command=sys.exit(0)).pack(side=LEFT)
root.mainloop()

Universidad de
Deusto
.
.
.
.
ESIDE

Ejemplo de GUI con Pmw

Universidad de
Deusto
.
.
.
.
ESIDE

Introducción a wxPython




Basada en la toolkit wxWidgets
(http://www.wxwidgets.org/):
Creada para proveer una manera barata
y flexible de maximizar la inversión
realizada en eldesarrollo de GUIs




Hasta Febrero del 2004, wxWidgets era
conocida como wxWindows, pero Microsoft
“sugirió” un cambio de nombre
Esconde al programador de la complejidad
de C++ y permite el acceso a la misma
funcionalidad desde Python


Implementada como un módulo de extensión
Python que funciona como un wrapper alrededor
de wxWidgets

Universidad de
Deusto
.
.
.
.
ESIDE

Características wxPython

Creada por Robin Dunn, beneficiándose del
excelente trabajo de Julian Smart en
wxWidgets








Multiplataforma, presencia nativa, alto rendimiento
gráfico
Basada en la API C++ wxWidgets creada en 1992
(http://www.wxwidgets.org)
Alternativa capaz y sencilla a MFC y Windows.Forms
en Windows o GTK y Qt en Linux

wxWidgets + Python = wxPython (creada en
1996)




Permite realizar...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS