Table of Contents
Si heu entès tot aquest llibre fins aquí i heu practicat escrivint un bon grapat de programes, segurament us sentireu força còmodes amb Python. Probablement heu desenvolupat alguns programes en Python per a practicar les vostres habilitats en el llenguatge. Altrament, a què espereu? Ara la pregunta és 'i ara què?'.
Us recomano que us enfronteu al següent problema: creació d'una agenda que funcioni per línia de comandes. L'agenda haurà de permetre afegir, modificar, eliminar o cercar contactes com ara amics, família i companys, i la seva informació com ara adreça de correu o/i telèfon. Els detalls s'han de guardar per futures consultes.
És un problema força senzill si pensem en termes de tot el que hem vist fins ara. Però, per si encara no ho veiem clar, aquí va una pista.
Pista. (No hauries d'estar llegint això!). Crea una classe per a representar la informació d'una persona. Fes servir un diccionari per a emmagatzemar les instàncies de persona amb el seu nom com a clau. Fes servir el mòdul cPickle per emmagatzemar els objectes persistentment al disc dur. Fes servir els mètodes del diccionari per a afegir, eliminar i modificar dades de les persones.
Un cop hem estat capaços de desenvolupar aquesta aplicació podrem dir que som programadors de Python. De seguida envia'm un missatge d'agraïment per aquest magnific llibre ;) . Aquest pas és opcional però desitjable.
A continuació es llisten algunes maneres de continuar el nostre camí amb el Python.
Biblioteques gràfiques (GUI) que fan servir Python - ens calen per crear els nostres programes amb interfície gràfica. D'aquesta manera podrem crear el nostre propi IrfanView o un Kuickshow o qualsevol altre programa que requereixi les biblioteques GUI amb vincles (bindings) des de Python. Aquests vincles ens permeten escriure programes amb Python i fer servir les biblioteques que poden estar escrites en C, C++ o altres llenguatges.
Hi ha un munt d'opcions de GUI amb Python:
PyQt. És el vincle Python pel joc d'eines (toolkit) Qt. Qt és la base sobre la que s'ha desenvolupat KDE. És extremadament fàcil d'usar i molt potent, especialment per la utilitat Qt Designer i la impressionant documentació. PyQt és lliure/gratuït pel desenvolupament de programari sota llicència GPL sobre Linux/Unix, però cal pagar si el programari a desenvolupar és propietari. Trobarem un bon punt per començar a partir de 'GUI Programming with Python: Qt Edition'. Mireu també la pàgina oficial de PyQt per més detalls.
PyGTK. Aquest és el vincle pel joc d'eines GTK+, base de GNOME. GTK+ presenta algunes dificultats en començar a usar-lo, però un cop ens familiaritzem podem crear aplicacions amb GUI amb agilitat. És indispensable l'ús del dissenyador d'interfícies gràfiques Glade. A la documentació encara li queda una mica per millorar. GTK+ funciona força bé en Linux però amb Windows encara no està complet. GTK+ ens permet crear tant programari lliure com propietari. Trobarem més detalls a la seva pàgina principal.
wxPython. És el vincle de Python per al joc d'eines wxWidgets. wxPython costa una mica d'entrar. Amb tot, és molt portable i funciona sobre Linux, Windows, Mac i fins i tot plataformes incrustades (embedded). Hi ha diferents entorns de desenvolupament (IDEs) disponibles per wxPython que inclouen dissenyadors de GUI com ara SPE (Stani's Python Editor) i el wxGlade GUI builder. Permet crear indistintament programari lliure i propietari. Trobem més detalls a la seva pàgina oficial.
TkInter. És un dels més antics. Els que hàgim fet servir l'aplicació IDLE, ja ens hem trobat un programa TkInter en execució. La documentació de TkInter que es troba a PythonWare.org és entenedora. TkInter és portable i funciona tant sota Linux/Unix com sota Windows. TkInter forma part de la distribució estàndard de Python.
Trobarem més opcions a la pàgina GuiProgramming wiki page at Python.org
Malauradament no hi ha un estàndard d'eina GUI per Python. Us recomano que escolliu una de les anteriors depenent de les vostres circumstàncies. El primer factor a tenir present és si estem disposats a pagar per a fer servir una eina GUI. El segon factor és si volem que el programa s'executi sota Linux, Windows o ambdós. Finalment, en cas que treballem amb Linux, el tercer factor és si som usuaris de KDE o de GNOME.
Estic planejant escriure un o dos capítols per aques llibre sobre programació amb GUI. Probablement escolliré wxPython. Si vols presentar la teva opinió al respecte, pots afegir-te a la llista de correu byte-of-python mailing list on els lectors discuteixen amb mi les millores que podem realitzar al llibre.