Documente Academic
Documente Profesional
Documente Cultură
LorenzoGilSnchez<lgs@sicem.biz>
SICEm(SoftwareIntegradoparaelControldelaEmpresa)
ArturoGonzlezFerrer<arturogf@ugr.es>
CEVUG(CentrodeEnse anzasVirtualesUniversidaddeGranada)
Objetivosdidcticosdeltaller
Aplicacindeejemplo:PyEMICA
1.EsbozodelainterfazenGlade
1. CreamosunproyectoGTK+nuevo 2. Creamosunaventana 3. Dentrometemosunacajaverticalde tamao2 4. Enlapartedearribametemosuna barrademensyenlapartedeabajo unacajahorizontaldetamao2 5. Enlaparteizquierdametemosun controldetipoListayenlaparte derechaunacajaverticaldetamao7 6. Guardamoselproyectocomo pyemica.glade
2.CargadelainterfazdesdePython
1. Enunficherodetextoescribiremos nuestroprimerprogramaPyGTK 2. Importamoslaslibreriasnecesarias 3. Creamoslaclasequeser nuestro programaprincipal 4. Cargamoselarchivogladeque creamosenelpasoanteriorenel constructordelaclase 5. Ejecutamoselprogramallamandoal m todorun() 6. Problema:nohayformadesalirsedel programa
3.Mejorandolaventanaprincipal
1. Vamosaponerlenombre,unttulo,unaposicininicialyuntamaoinicialanuestraventana. 2. EnlapestaaSe alesaadiremosunmanejadorparalaseal destroydeGtkObject.
4.Manejodeseales
5.Controlesdeedicin
6.AccediendoaloscontrolesdesdePython
7.Arreglandolalistadecanciones
ElcontrolTreeViewdeGTK+usauna arquitecturaMVC:Potente,flexibleperoalgo complicadoalprincipio Lavista(TreeView)tieneasociadounmodelo (ListStore)queeselquecontienelosdatos Lavistatieneunaom scolumnas (TreeView)quecogenlosdatosdelmodeloy losvisualizanconlaayudadelos visualizadores(CellRenderer )
CellRenderer
CellRenderer
8.Editandolosmenus
9.Losmanejadoresdemens
Elm todoon_mnSalir_activateesbastanteautodescriptivo Enelm todoon_mnAbrir_activateabriremosundilogodeseleccindeficherosysi elusuariopulsaenelbotnOk,llamamosalm todocarga_canciones(porescribir)con eldirectorioseleccionado. Lalineaself._widgets.get_widget('vbxEditor').set_sensitive(gtk.FALSE) es opcionalysirveparadesactivarlacajadeloscontrolesdeedicinparaqueelusuario nolospuedausara n.
10.Lacargadecanciones
Rellenamoselmodelodenuestralistadecancionesconlosficherosconextension mp3deldirectorioencuestin.Paracadaelementoguardamoselnombredela cancinylarutacompleta. Paraellousamoselm duloglobytambi nlafuncinbasenamedelm duloos.path. Estossonm dulosdelalibreraest ndardePython. Porltimoleponemoscomottuloalacolumnadelalistaelnombredeldirectorio.
11.Leyendolametainformacinde lascanciones
11.Leyendolascanciones(2)
Peronosfaltaalgo,no?
11.Leyendolascanciones(3)
12.Guardandoloscambios
Paraguardarnuestroscambiosprimerotenemosquesabersiha habidoalgncambio Paraelloutilizamoslaseal changed delasentradasdeTexto (incluidalacajacombo) Podemosconectarunmanejadoradichasealyguardarla metainformacincuandodetectemosalg ncambio.Noesmuy eficienteperoessimpleyfunciona:) Cuidadoconelm todolee_cancinporqueestmodificandolos controlesylase al changed seremitida.Solucin:usaruna variabledeestadoparasabersiestamosenesecaso.
12.Guardandoloscambios(2)
12.Guardandoloscambios(3)
13.Lasealchangedseemite demasiadasveces
Cdigocompleto:slo140lineas!!