Está en la página 1de 36

DESARROLLANDOAPLICACIONES CONPYGTK

Por:FabioEstebanDurnVerdugo. EstudianteIngenieraenInformtica UniversidadAutnomadeChileSedeTalca fabio@gnome.cl http://www.gnome.cl

QueVeremos?...ojalseabueno...

Introduccin. Reseas. Datos. AlgunosEjemplosPrcticos.

INTRODUCCION...

Segnyo... Observoque...

fabio@gnome.cl

QueesPYGTK+?

PYGTK=Python+GTK

fabio@gnome.cl

Python...

LenguajeInterpretadodeAltoNivel EsOrientadoaObjetos. CreadoporGuidoVanRossumen1990 Multiplataforma EstructuradelCdigo: Findelneamarcafindesentencia LaSangraexpresalaestructuradeunbloque Essensiblealaidentacin.

fabio@gnome.cl

Python...

palabra=HolaMundo!!! ifpalabra==HolaMundo!!!: print'estasenlocorrecto' else: print'quebonitoperoestasmal' >>estasenlocorrecto

fabio@gnome.cl

Python...Comosehace?

SENTENCIASDEFLUJODECONTROL

fabio@gnome.cl

Python...

if<CONDICIN>: (4espacios)<SENTENCIA> elif<CONDICIN>: (4espacios)<SENTENCIA> else:<CONDICIN>: (4espacios)<SENTENCIA>


fabio@gnome.cl

Python...
EJEMPLO1 EJEMPLO2

lista=[1,2,3] iflista==[1,2,3]: (4espacios)print'si' >>si

lista1=[1,2,3] lista2=[3,4,5] iflista1>lista2: (4espacios)print'Mayor' eliflista1<lista2: (4espacios)print'Menor' else: (4espacios)print'Igual' >>Mayor

fabio@gnome.cl

Python...

for<VARIABLE>in<SECUENCIA>: (4espacios)<SENTENCIA>

fabio@gnome.cl

Python...
EJEMPLO1 EJEMPLO2

foriinrange(1,3): printi >>1 >>2 >>3

coordenada=[(1,1),(1,2),(1,3)] forx,yincoordenada: printx,y >>11 >>12 >>13

fabio@gnome.cl

Python...
ejemplo3

diccionario={1:'a',3:'c',2:'b'} letras=diccionario.keys() letras.sort() foriinletras: printdiccionario[i] >>a >>b >>c


fabio@gnome.cl

Python...

while<CONDICIN>: (4espacios)<SENTENCIA>

fabio@gnome.cl

Python...
ejemplo1 ejemplo2

i=0 whilei!=3: (4espacios)printi i=i+1 >>0 >>1 >>2

x=3 whileTrue: (4espacios)x=x1 ifx==3: printx ifx==0 break >>3

fabio@gnome.cl

Python...

DEFINICINDEFUNCIONES

fabio@gnome.cl

Python...

Serealizaconlapalabradef Nosedistinguenentreprocedimientosyfunciones Todoslosvaloressetraspasanporreferencia Unfuncinpuededevolvercualquierdatooestructurade datos.


ejemplo1

defholamundo(): (4espacios)print'HolaMundo' holamundo(): >>HolaMundo


fabio@gnome.cl

Python...
ejemplo2

ejemplo3

defsuma(i): returni+2 printsuma(6) >>8

ejemplo4

i=100 defveamos(i): printi veamos(5) >>5

defvalores(x=0,y=0): printx','y valores() >>0,0 valores(x=1,y=2) >>1,2


fabio@gnome.cl

Python...

DEFINICINDECLASES

fabio@gnome.cl

Unacoleccindemtodos. Cadamtodocontienecomoprimerparmetrolapalabra selfquehacereferenciaaunobjeto.


ejemplo1

Python...

classejemplo(): def__init__(self): printself.suma(6) defsuma(self,i): returni+2 if__name__=='__main__': d=ejemplo() >>8


fabio@gnome.cl

Python...
ejemplo2

classuno(): def__init__(self): dos() classdos() def__init__(self): printself.suma(6) defsuma(i): returni+2 if__name__=='__main__': x=uno() >>8
fabio@gnome.cl

Python...

IMPORTANDOMODULOS

fabio@gnome.cl

Python...

from<MODULO>import<CLASE> import<MODULO>

fabio@gnome.cl

Python...
ejemplos

#importandomodulodesistema importsys #importandogtk+ importgtk #importandomoduloconnectdesdepyscopg frompsycopgimportconnect


fabio@gnome.cl

GTK+...

GTK=theGimpToolKit

fabio@gnome.cl

GTK+...

3LibrerasPrincipales: GLIB=ManejodeestructurasdedatosparaC.(Conjuntode Widgets) ATK = Creada para crear interfaces para gente discapacitadaominusvlidos PANGO = Renderizado y diseo de texto,

Internacionalizacin.

fabio@gnome.cl

GTK+...

Algunoswidgets: gtk.Window gtk.Button gtk.Label gtk.TreeView gtk.ListStore etc...etc...etc...

fabio@gnome.cl

GTK+...
EjemploPYGTK: importgtk classHolaMundo: defhello(self,widget,data=None): print"HelloWorld" defdelete_event(self,widget,event,data=None): print"deleteeventoccurred" returnFalse defdestroy(self,widget,data=None): print"destroysignaloccurred" gtk.main_quit()

fabio@gnome.cl

GTK+...

def__init__(self): self.window=gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect("delete_event",self.delete_event) self.window.connect("destroy",self.destroy) self.window.set_border_width(10) self.button=gtk.Button("HelloWorld") self.button.connect("clicked",self.hello,None) self.button.connect_object("clicked",gtk.Widget.destroy,self.window) self.window.add(self.button) self.button.show() self.window.show() defmain(self): gtk.main() if__name__=="__main__": hello=HolaMundo() hello.main()

fabio@gnome.cl

GTK+...

Glade. ConstructordeInterfaces Independenciaentrecdigoeinterfaz

fabio@gnome.cl

GTK+...

GLADECONNECT...

fabio@gnome.cl

GTK+...

LibreraoClaseBaseparaconectarGladeconPython. Ventaja: IndependenciaentreCdigoPythoneInterfaz. ComoUtilizarlalibrera?


fromGladeConnectimportGladeConnect ClassEjemplo(GladeConnect) def__init__(self): GladeConnect.__init__(self,ruta_del_archivo.glade,objeto_a_mostrar_)

fabio@gnome.cl

GTK+...

NOTAIMPORTANTE: LalibreraGladeConnectdebeestarenmiespaciode trabajo

fabio@gnome.cl

GTK+...
ejemplo1GladeConnect

importsys importgtk fromGladeConnectimportGladeConnect classEjemplo(GladeConnect): def__init__(self): GladeConnect.__init__(self,ejemplo.glade,wnEjemplo) if__name__=='__main__': w=ejemplo() gtk.main()

fabio@gnome.cl

GTK+... Referencias: DevHelp. python: aprendaapensarcomoprogramadorconPython. DiveintoPython. pygtk: PyGTK2.0ReferenceManual PyGTK2.0Tutorial

fabio@gnome.cl

GTK+... Referencias: Guadecomohacerpreguntasinteligente www.sindominio.net/ayuda/preguntasinteligentes.html ConstruccindeInterfaces. HIG. GuaderecomendacionesdecomodisearinterfacesparaGNOME. http://developer.gnome.org/projects/gup/hig/

fabio@gnome.cl

GTK+...

PREGUNTAS? mandensusSPAM fabio@gnome.cl

fabio@gnome.cl

También podría gustarte