0% encontró este documento útil (0 votos)
393 vistas54 páginas

Desarrollo de Apps con Python y wxPython

El documento describe el lenguaje de programación Python y el framework wxPython para desarrollo de aplicaciones de escritorio, explicando las ventajas de Python como lenguaje, conceptos básicos de programación, tipos de datos, objetos y clases, y cómo crear aplicaciones gráficas de escritorio usando wxPython.

Cargado por

phill29es
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
393 vistas54 páginas

Desarrollo de Apps con Python y wxPython

El documento describe el lenguaje de programación Python y el framework wxPython para desarrollo de aplicaciones de escritorio, explicando las ventajas de Python como lenguaje, conceptos básicos de programación, tipos de datos, objetos y clases, y cómo crear aplicaciones gráficas de escritorio usando wxPython.

Cargado por

phill29es
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Desarrollo de aplicaciones de escritorio con Python y wxPython

ngel Luis Garca Garca [Link]


Por qu Python?

Sintaxissencilla. Fcildeaprender. Multiplataforma(Unix, Mac,Windows). Multiparadigma (imperativo,funcional, OO)[sepuedenmezclarentre


ellos].

Multituddemdulos(web, mviles,escritorio,SOAP, etc). AmpliablemedianteC/C++. RespaldadoporGoogle, Facebook,NASA,etc. AntdotoparaelSndromede laCadenachorizo.

Ampliadocumentacin.

Cadenas chorizo...

El Zen de Python

Bellomejorquefeo. Explcitoesmejorqueimplcito. Simpleesmejorquecomplejo. Complejoesmejorquecomplicado. Planoesmejorqueanidado. Dispersoesmejorquedenso. Lalegibilidadcuenta. Loscasosespecialesnosontanespecialescomoparaquebrantarlasreglas. Aunqueloprcticoganaalapureza. Loserroresnodeberandejarsenuncapasar.

El Zen de Python

Amenosquehayansidosilenciadosexplcitamente. Frentealaambigedad,rechazalatentacindeadivinar. Deberahaberunaypreferiblementeslounamaneraobviadehacerlo. Aunqueesamanerapuedenoserobviaalprincipioamenosqueustedsea holands. Ahoraesmejorquenunca. Aunquenuncaesamenudomejorqueyamismo. Silaimplementacinesdifcildeexplicar,esunamalaidea. Silaimplementacinesfcildeexplicar,puedequeseaunabuenaidea. Losespaciosdenombres(namespaces)sonunagranideaHagamosmsde esascosas!

Resumiendo...

Python: Historia

CreadoporGuidovanRossum(elbenevolente dictadorvitalicio)afinalesdelos80. [Link]

Desde2005,enGoogle(MountainView). Fijadirectricesydecisionesfinalessobre Python.

AdministradoporPSF(PythonSoftware Foundation),conlicenciadecdigoabierto (PSFL)compatibleconGPLdeGNUapartirde versin2.1.1. Sitioweboficial:[Link]

Implementaciones de Python

CPython:(oPython)[Link],interpretay contienemduloscodificadosenCestndar. Jython:ImplementacinparalaJVM(MquinaVirtualJava)accediendoa lasbibliotecasdeJava. IronPython:ImplementacinparaelCLRdeMicrosoft,paraaccederal [Link]. PyPy:ImplementacindePythonescritaenPython(pararizarmselrizo).

Versiones de Python

[Link]: [Link] TresversionesaAbril2011:

Python2.6 Python2.7 Python3.2 Qumdulosnecesitamos?Mayoracompatiblescon2.6 Futuro?[Link] [Link].

Culelegir?Dependedenuestrasexigencias.

El futuro de Python

Lenguajedepropsitogeneral,conmsde20aosdevida. DesarrolloesponsorizadoporGoogle. UtilizadoenIndustrialLight&Magic,Pixar,BitTorrent,[Link] WeatherService,NASA,NSA,Fermi,Corel,RedHat,Lockheed Martin,Facebook,etc. Conferenciasanualesmundiales(PyCon). Multituddemdulos(libreras)debaseydeterceros,ampliable. Utilizadoenprogramacindesistemas,clculonumrico,web,mviles (Android,Symbian),escritorio,[Link],etc. Casosdexito:GoogleAppEngine(entornodeCloudComputingde Google,quesoportaJavayPython).Msen [Link]

Conceptos generales

Lenguajedeprogramacindeusogeneral. DemuyaltonivelVHLL(Veryhighlevelprogramming language)

Altoniveldeabstraccin(usodelistas,tuplas, diccionariostablashashing).

Multiplataforma(Linux,Mac,Windows) Multiparadigma(imperativo,orientadoaobjetosyfuncional) Interpretado,dinmico,fuertementetipado,gestinde memoriaautomtica.

Composicin...

Python:Lenguaje+bibliotecaestndar+mdulosdeextensin

Lenguaje:Estructuras,palabrasreservadas,funciones genricas,[Link]:print,if...else...,def():. Bibliotecaestndar:Conjuntodemdulospordefectoen [Link]:os,cPickle,datetime. Mdulosdeextensin:[Link]:accesoa basesdedatos(pyodbc,mysqldb,etc),XML,YAML, entornogrfico(wx,Qt,GTK,Tk,etc),web(Django, webpy,TurboGears,Pylons,etc),yunlargoetctera.

El intrprete Python

Cmo ejecutar/desarrollar cdigo Python? (I)

Intrprete:probarestructuras,tiposdedatos, rprete mdulos,expresionesregulares,etc. Intrprete+[Link]:ejecutarenconsolafichero rprete+[Link] concdigoPython.P.e.:[Link] IDE:IDLE,PyScripter(Windows),Stani'sPython IDE Editor,Eclipse(pyDev),NetBeans,Geany,etc. RAD:BOAConstructor,SharpDevelop RAD (IronPython)

Cmo ejecutar/desarrollar cdigo Python? (y II)

Intrpretesmejorados:Shell'sinteractivoscon rpretesmejorados caractersticasmejoradas.P.e.:Dreampie, pyCrust,pyShell. Editores:emacs,vi,Editra,SciTE,NotePad++,etc. Editores GUI's:Creaci n/diseointerfacesgrficas.P.e.: GUI's wxFormBuilder(wx),Glade(wx,GTK),Monkey Studio(Qt),etc.

Cmo ejecutar/desarrollar cdigo Python? (y III)

Listacompletadeeditores,gui'seide'sen [Link]

LomnimoqueseledebedepediracualquierIDE editor,paradesarrollarenPython,eslaindentacin, coloreadoycompletituddecdigo.

PRUEBA,COMPARAYSIENCUENTRASALGO MEJOR,INSTLALO

Python: tipos de datos

Tiposdedatos:

Nmeros:2,2.34,4000 Booleanos:True,False Listas:['Hola','Mundo',2011] Tuplas:('Hola','Mundo',2011) Diccionarios:{clave1:'Hola',clave2:'Mundo'} Conjuntos. Etc.

Python: programacin imperativa

Estructurasiterativas:

forxiny while ifthen...else... defmi_funcion(): defmi_funcion(param1,param2):

Saltoscondicionales:

Funciones:

Python: POO
classmi_primera_clase(object):
def__init__(self,param1,param2):
#Constructor. self.atributo1=param1 self.atributo2=param2

defgetAtributos(self):
returnself.atributo1,self.atributo2

defsetAtributos(self,atrib1,atrib2):
self.atributo1=atrib1 self.atributo2=atrib2

Ms Python, ms madera!

Metaclases. Iteradores. Propertiesdeclases. Decoradores. Programacinfuncional:map,reduce,lambda, Mstipos:namedtuples, Formateodecadenas. Codificaciones,....yunlargoetctera.

Ejemplo de cdigo Python, I

Ejemplo de cdigo Python, II

Libros de Python, en espaol

PYTHONGUADEREFERENCIA

ALEXMARTELLI EDITORIALO'REILLY

PROGRAMACINPYTHON3

MARKSUMMERFIELD EDITORIALADDISONWESLEY

PYTHON,CREARMODIFICARREUTILIZAR

JIMKNOWLTON EDITORIALWROX

LAGUADEFINITIVADEDJANGO

ADRIANHOLOVATYYJACOBKAPLANMOSS EDITORIALAPRESS

Python en Internet

Pythonparatodos(RalGonzlezDuque) IntroduccinaPython(ngelLuisGarcaGarca) ComunidadPythonArgentina(PyAr) ([Link] DocumentacinPythonenSourceForge ([Link]

El framework wxPython

CreadoporRobinDunn,en1995. EsunalibreragrficaparaPython. Permitecrearprogramasconunainterfazgrficarobustaydegran funcionalidad,fcilysimple. EsunwrapperdelaplataformawxWidgets(escritaenC++).(Unaadaptacin


delabibliotecawxWidgetsparaserusadaenPython)

EsOpenSource. Multiplataforma(Windows,Unix,Mac). Muydocumentado. Proyectomuyactivo.(19/10/2010wxPython2.9.1.1) The only reason


wxPython isn't the standard Python GUI toolkit isthat Tkinter was there [Link] van Rossum

[Link](softwareydocumentacin)

El framework wxPython

VersionesaAbril2011(paraPython2.5,2.6y2.7):

Estable:[Link] Desarrollo:[Link] SintxisyestucturasfundamentalesdePython. Programacinorientadaaobjetos.

ConocimientospreviosparautilizarwxPython:

Porqu?Seutilizanclases,seheredancomponentes ysehaceoverrideensusmtodos.

Cmo funciona una aplicacin wxPython?

wxPythonsirveparacrearaplicacionesgrficasorientadasa eventos. Acadaeventoselepuedeasociaruncdigo,medianteun procesollamadobinding. Elmanejadordeeventoseselcdigoquesedisparaa consecuenciadelageneracindeunevento. UnaaplicacinwxPythonesperaaquesegenereneventos, asociandolosmismosauncdigo,llamadomanejadorde eventos.

Estructura de una aplicacin wxPython

UnaaplicacinwxPythonsedivideentrespartes:

Importarelmdulowx(ydemscosas...) CreacindelaaplicacinwxPython. Creacindelcontenedor.


Componentes. Binding. Manejadoresdeeventos.

Creacin de una aplicacin wxPython

Creacin de una aplicacin wxPython

Binding y manejadores de eventos

Binding y manejadores de eventos

Y al hacer click en el botn

Informacin sobre wxPython

[Link] [Link]:wxPythonDemo SanGoogle Doslibros:

wxPython Demo, y I

Demoquemuestraalgunasdelascapacidadesde wxPython. Ejemplosdewidgetscompletosycomentados, totalmentefuncionales. DisponibleparaLinux,WindowsyMac.

wxPython Demo, y II

widgets... richtextctrl

widgets... toolbook

widgets... listbook

widgets... speedmeter

widgets... flatnotebook

widgets... ultimatelistctrl bittorrent

widgets... peakmeter

Widgets... piectrl

widgets... ribbonbar

widgets... aui

Sizers

[Link],mediante coordenadas. Sizer:MecanismodedisposicindewidgetsenwxPython.

Manejaeltamaoyposicindesuswidgets,basadoenunconjuntode reglas. Seasignaauncontenedor([Link]). Esunalgoritmoparadisponerenmarcarungrupodewidgets. Lossubwidgetsquesecreandentrodeuncontenedordebende aadirseporseparadoalsizer. Elsizeradministralaposicindeloswidgets.

Sizers

UnsizerenwxPythonesunobjetoconelnico propsitodeadministrarelposicionamientode unconjuntodewidgetsdentrodeun contenedor. Elsizereslarepresentacindeunalgoritmode posicionamientodepantalla(nouncontenedor widget). [Link]. Unsizerpuedeestarincluidoenotrosizer.

Sizers

Aprenderautilizarsizersmanualmentees:

UNALOCURA Utilizaraplicacionesdediseodepantallascon generacinautomticadecdigoPythony wxPython.


Algunasolucin?

wxGlade wxFormBuilder wxDesigner PythonCard

wxFormBuilder, y 1

EntornoWYSIWYGparadiseogrficodeinterfaces parawxWidgets. PosibilidaddegenerarcdigoPython. Contienemuchoswidgets. TrabajarconsizersenwxFormBuilderesmuyf cil. [Link] Tutorial:wxFormBuilderenElViajedelNavegante

wxFormBuilder, y 2

wxFormBuilder, y 3

El secreto para aprender Python y wxPython...

Buscar,encontrar, modificar,probary verporquno funciona.


Muchas gracias a todos! Gracias a todos

También podría gustarte