Python+GTK+Glade. Python + GTK +Glade. Tabla de Contenidos



Documentos relacionados
Para crear una actividad, pulsamos sobre la pestaña actividades

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Paradigmas de Programación Práctica II - Curso 2012/13

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Plantillas Office. Manual de usuario Versión 1.1

INDICE. 1. Introducción El panel Entities view El panel grafico Barra de botones Botones de Behavior...

Administración de Clientes 4

Manual hosting acens

GUÍA DE EMPRESAS // Gracias por tu preferencia

Proyecto de Facturación con Filemaker Pro 12

Actualización en módulo NÓMINA

MANUAL DE USO Octubre CLIENTE: Liber Ediciones AUTOR: 2.0 DISEÑO _

Manual para la instalación del cliente de correo electrónico Mozilla Thunderbird.

CREACION DE GALERIAS WEB

egarante Configuración de una cuenta de correo del servicio eginbox en una cuenta existende de Gmail

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

Manual para el uso del Correo Electrónico Institucional Via Webmail

CARGA MASIVA EMOV 7/1/2013

Manual de configuración de Outlook 2010 ÍNDICE

HOOTSUITE: GESTOR DE CUENTAS EN REDES SOCIALES

Estimado usuario. Tabla de Contenidos

Mensario 2: Manual de importación

Manual para la utilización de PrestaShop

CURSOS PRÁCTICOS SEDEN SEDEN

Instalación del Admin CFDI

Agregar un botón en la llamada de servicio que cree una factura.

REGISTRAR LOS SITIOS WEB MÁS INTERESANTES

Gestión de Retales WhitePaper Noviembre de 2009

5. Composer: Publicar sus páginas en la web

Versión: Desarrollado por AloOnline Alojamiento Web

SMS Gestión. manual de uso

MANUAL DE LA APLICACIÓN HELP DESK

GUIA PRÁCTICA PARA LA FIRMA DIGITAL DE UN PDF A PARTIR DE UN PDF CREADO POR TI.

Guía rápida del usuario DoliShop

COBHTTPD Tutorial COBHTTPD. Servidor de Aplicaciones para COBOL. Tutorial Ver Page - 1 -

En cumplimiento de la materia de Ingeniería De Software.

4. CONTENIDO Cómo Añadir Contactos a tu Webmail

Paso a Paso S Step 7 Basic v10.5

Aplicateca. Manual de Usuario: Ilion Factura Electrónica. Espíritu de Servicio

Volumen TECNOLOGÍA DE ADMINISTRACIÓN EMPRESARIAL SIMI EVOLUTION (9.0) Guía de usuario

Marta Soler Tel: Fax: TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE

Control de Inventarios SisMod

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

MANUAL DE USUARIO CMS- PLONE

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la

Servicio Webmail. La fibra no tiene competencia

1. Duplicar la capa de fondo:

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

Para trabajar este tema vamos a situarlo un poco más en el lenguaje común:

Asignar permisos a usuarios de Active Directory en una carpeta compartida.

Tutorial DC++ Usarlo es muy sencillo y configurarlo también, aunque tiene algunos trucos importentes.

TUTORIAL. Edición de contenido y creación de entradas y páginas Wordpress

Manual de usuario Software PC Editor de Rutas. inled

MINITUTORIAL PARA EL MANEJO DE TABLEAU

Implementación de widgets Avaibook en Blogger

La ventana de Microsoft Excel

Práctica 8. Entornos SCADA. Funciones avanzadas de WinCC.

GUÍA DE OUTLOOK. Febrero 2010


MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Manual CMS Mobincube

Word 2010 Columnas estilo periodístico

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Cómo configurar el correo electrónico en Thunderbird

2. MANUAL ALTA DE SERVICIO

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

GUÍA RED SOCIAL FACEBOOK

Tutorial PowerPoint. Crear una nueva presentación

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio.

PLATAFORMA ON-LINE DE FORMACIÓN. Manual del Alumno

CURSO DE CREACCIÓN Y ACCESO AL CORREO ELECTRÓNICO

Gimp - Segunda parte. En qué formatos puede grabar GIMP mi imagen? Guardar una imagen

Manual de usuario de Windows Live Writer

Cómo crear una copia de seguridad del contenido de Outlook. Service Desk

MINI MANUAL PARA CREAR FORMULARIOS CON PHP Marzo 2007

Uso de varias pantallas y pantalla Splash

Hay varios tipos de cuentas, POP3, IMAP y SMTP, aquí hablaremos de las POP3 por ser las más usadas.

M a n u a l Inventarios

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

MANUAL PARA LA ACTUALIZACIÓN Y CREACIÓN DE DEPENDENCIAS EN EL SISTEMA CREG ENTREGA-RECEPCIÓN

TUTORIAL ENVIO SMS MASIVOS. 1. Segmentación de la base de datos de clientes

Base de datos OpenOffice ª parte. por Pedro Peregrín González CEIP San Juan de Dios Granada -España-


Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Manual de iniciación a

3.1 Definir objetivos y contenidos de la página web

Concesionario de coches

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

UNIVERSIDAD TÉCNICA DEL NORTE FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS ESCUELA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES

NORMA 34.14(SEPA) 05/11/2013

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

MÓDULO 2 Ejercicios Guiados. Ejercicio guiado No.2: Subir fotos al Flickr

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Introducción a LinoIt Breve guía sobre algunas de sus funcionalidades destacables.

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Word Interfaz Word 2007.

Transcripción:

Python + GTK +Glade Ing. Carlos Zager Fernández Corvus / Latinux de Venezuela czager@corvus.com.ve

Lo primero que debemos hacer es crear en Glade una ventana muy sencilla que contenga un Label al cual le vamos a poner el mensaje Hola mundo!. También debemos asegurarnos que la ventana sea visible. Salvamos el proyecto con el nombre que deseemos (ejm: hola.glade ). Debemos crear un archivo de código Python que se encargará de controlar nuestra interfaz. Para ello creemos con el editor de nuestra preferencia un archivo con el siguiente contenido. import pygtk pygtk.require('2.0') import gtk from gtk import glade glade.xml('hola.glade') gtk.main() #python hola.py Deberíamos ver una ventana muy parecida a la que está de muestra. Fíjese que no responde a ningún evento, por lo que debe mandarle una señal de kill al programa para finalizarlo.

Ya sabemos crear una ventana. Procedamos a diseñar nuestra interfaz. Para ello vamos de nuevo a Glade y creamos una ventana. Agreguemosle un Vbox de tamaño 3 y lo rellenamos de la siguiente manera: 1.MenuBar Eliminamos los MenuItems Edit y View 2.Horizontal Button Box Tamaño 2 Lo alineamos a la izquierda Le desactivamos el expandir Le agregamos dos botones tipo stock:add,remove 3.Scrolled Window TreeView Activamos Rules Hint Colocamos Search Column en 1 Lo renombramos como tree Con esto ya hemos creado la base de nuestra interfaz y al igual que en el ejemplo anterior podemos hacer un simple archivo de Python para probarla. Deberíamos ver algo parecido a la imagen de ejemplo Recuerde que no hemos conectado ningun evento todavía, así que no espere ver nada atractivo ya que los botones no van a hacer nada cuando los clickee Recordatorio: si no ve nadaprobablemente es que se le olvido activar la visibilidad de la ventana

Ahora que tenemos nuestra interfaz, necesitamos darle funcionalidad a la misma. Para ello necesitamos conectar los eventos a funciones que nosotros implementemos. Procedemos a abrir nuestra interfaz en Glade y hacemos lo siguiente: En el arbol de inspección seleccionamos el MenuItem New y le asignamos a la señal activate el valor new Lo mismo hacemos para Open,Save,Save As,Quit y About. Ahora necesitamos las señales que van a permitir crear o eliminar una tarea. Para ello asociamos en los botones Add y Remove las señales clicked con los valores add y remove respectivamente. También debemos asociar la señal destroy de la ventana principal con el valor quit (la misma que asociamos al MenuItem Quit ). Esta se encuentra en el submenu GtkObject de las señales. Ahora debemos hacer que las señales sean atendidas por funciones de Python

Python+GTK+Glade Para darle funcionalidad a los eventos nos vamos al codigo de Python y debería quedar algo como esto import pygtk pygtk.require('2.0') import gtk,gobject from gtk import glade class gui: def init (self): self.glade=glade.xml('gui.glade') self.glade.signal_autoconnect({ 'quit':self.quit, 'about':self.about, 'add':self.add, 'remove':self.remove, 'open':self.open, 'new':self.new, 'save_as':self.save_as, 'save':self.save, }) def quit(self,b): gtk.main_quit() def add(self,b): #Aqui agregariamos una nueva tarea pass gui() gtk.main()

Python+GTK+Glade Un TreeView es una estructura de la librería GTK que nos permite tener un objeto que despliega su contenido como una lista de objetos divididos por columnas o como un arbol En este caso estamos interesados en mostrar los objetos en forma de lista. Para ello necesitamos añadir el siguiente código al final de la funcion init self.tree=self.glade.get_widget('tree') self.model=gtk.treestore(gobject.type_string, gobject.type_string, gobject.type_string) cellp = gtk.cellrenderertext() col1=gtk.treeviewcolumn('estado',cellp) col1.add_attribute(cellp,'background',0) cellt = gtk.cellrenderertext() col2=gtk.treeviewcolumn('tarea',cellt) col2.add_attribute(cellt,'text',1) self.tree.append_column(col1) self.tree.append_column(col2) self.tree.set_model(self.model) Si ejecutamos el código ahora se debería ver algo como la imagen

Vamos a ver como trabajar con diálogos, para ello debemos diseñar nuestro diálogo en Glade y queremos que se vea como el de la imagen. Lo hacemos con Dialog Box, Vbox, 2 Botones stock (Cancel,Ok), Text Entry, Text View y 2 Label. Al final renombramos el diálogo como dialogo Una vez que tenemos nuestro diálogo listo, debemos de tener una manera de ejecutarlo. Cambiemos la funcion add por: def add(self,b): code=glade.xml('gui.glade','dialogo') dialogo=code.get_widget('dialogo') dialogo.show() Hasta aqui ya podemos probar, si ejecutamos el código podemos ver que al hacer click en nuestro botón add se levanta este diálogo que acabamos de crear. Pero esto así solo no es de mucha utilidad, así que vamos a ver como podemos utilizar el diálogo para guardar los datos del usuario en la lista

Python+GTK+Glade Lo primero va a ser volver a Glade y colocar las señales y los nombres a los widgets para luego poder consultarlos. Añadimos a las señales clicked de los botones los valores cancel y ok. Y renombramos el TextArea como titulo y el TextView como descripcion. Luego debemos conectar estas señales a funciones en nuestro código. Quedaría asi: def add(self,b): code=glade.xml('gui.glade','dialogo') dialogo=code.get_widget('dialogo') code.signal_autoconnect({ 'ok': lambda x: self.add_data(code), 'cancel':lambda x:dialogo.destroy() }) dialogo.show() def add_data(self,code): dialogo=code.get_widget('dialogo') titulo=code.get_widget('titulo') descripcion=code.get_widget('descripcion') t1=titulo.get_text() buf=descripcion.get_buffer() start=buf.get_start_iter() end=buf.get_end_iter() t2=buf.get_text(start,end,true) self.model.append(none,['red',t1,t2]) dialogo.destroy()

Bueno ya en este punto tenemos cierta funcionalidad, obviamente falta mucho para que la aplicación este completa pero el resto es mecánico. Por ejemplo habría que hacer la funcionalidad de borrar, el diálogo Acerca de, etc. Ahora vamos a imaginarnos que todo esto está hecho y que queremos que nuestra aplicación pueda guardar y cargar los datos para poder ser usados luego. Para ello vamos a utilizar el módulo csv de Python para exportar los datos como archivos divididos por coma. Sería algo así def save(self,b): import csv writer = csv.writer(open( ~/.to-dos, w )) writer.writerows(self.model) def open(self,b): import csv reader = csv.reader(open( ~/.to-dos, "r")) for row in reader: self.model.append(none,row)

Bueno hasta ahora todo ha sido muy sencillo Pero debemos tomar en cuenta que no se ha hecho ninguna clase de verificicación, ni se levantan ventanas de diálogo de advertencia, de error, etc Falta mucho para que esta aplicación este completa, pero por algún lado hay que empezar Ahora veamos como se vería esta aplicación un poco mas completa