Realidad Aumentada 02 interfaz t apir

Post on 27-Jun-2015

456 views 0 download

Transcript of Realidad Aumentada 02 interfaz t apir

Prueba de Interfaz de usuario para el Proyecto de Realidad Aumentada Tapir

Servicio Social

Agustín Hernandez Vazquez

Software

Glade

Python

Prueba

Software

● Glade 3.2.2● Python 2.6.4

Con Glade haremos la ventana y con Python los eventos.

Glade

Para crear una aplicación en el panel izquierdo llamado Paleta en el sub menú Niveles superiores damos click en ventana y después damos click en el área de trabajo para que aparezca un frame.

Ahora incluimos las tablas o contenedores para comenzar a poner los botones y labels.en el Paleta+Contenedores+caja vertical (en este caso) damos un click y después otro click dentro del frame, glade nos pregunta de cuantos elementos elegimos los que deseen.

insertamos una barra de menú la cual esta en paleta+contenedores+barra de menú en este caso solo nos interesa el menú ayuda, borramos los otros menús seleccionándolos+suprimir

ahora insertamos el botón el cual esta en paleta+control y exhibición+botón

.

insertamos una etiqueta(label) se encuentra en paleta+control y exhibición+label, debemos elegir el label simple no el de botón enlace

Guardamos pero no cerramos glade.

Python

Ahora creamos un archivo vacío con cualquier editor de texto y comenzamos a programar la interfaz.

Aquí esta el código con comentarios para explicar su funcionamiento

#! /usr/bin/env python# -*- coding: UTF-8 -*-# Importamos los módulos necesarios

from os import popen

try: import pygtk pygtk.require('2.0') # Intenta usar la versión2except: # Algunas distribuciones vienen con GTK2, pero no con pyGTK (o pyGTKv2) pass

try: import gtk import gtk.gladeexcept: print "You need to install pyGTK or GTKv2 or set your PYTHONPATH correctly" sys.exit(1)

# Creamos una clase que almacena la información del programa (después se usara)class Info: "Store the program information" name = "TApir" version = "0.1" copyright = "Copyright © 2010 CICAINTE. \\nCopyright © 2010 GSC ASOCIADOS." authors = ["Agustin Hernandez Vazquez <ofstoneage@gmail.com>"] #website = "http://" description = "Visualiza objetos derivados de la libreria \GLUT (el visualizar archivos VRML no esta disponible para esta version del software)."# Esto lo saque de internet (licencia GNU) license = "This program is free software; you can redistribute it and/or \modify it under the terms of the GNU General Public License as published by \the Free Software Foundation; either version 2 of the License, or (at your \option) any later version. \n\nThis program is distributed in the hope that \it will be useful, but WITHOUT ANY WARRANTY; without even the implied \warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \

See the GNU General Public License for more details. \n\nYou should have \received a copy of the GNU General Public License along with this program; \if not, write to the Free Software Foundation, Inc., 51 Franklin Street, \Fifth Floor, Boston, MA 02110-1301, USA."

# Interfaz gráfica (gtk-glade), Clase para el Loop principal (de la GUI)class MainGui: "GTK/Glade User interface. This is a pyGTK window" def __init__(self): # Le indicamos al programa que archivo XML de glade usar self.widgets = gtk.glade.XML("interfaceT.glade")

# se definen las signals signals = { "on_button1_clicked" : self.on_button1_clicked, "on_imagemenuitem10_activate" : self.on_imagemenuitem10_activate, "gtk_main_quit" : gtk.main_quit } # y se autoconectan las signals. self.widgets.signal_autoconnect(signals)

# Ventana About (conocida como Acerca de). def about_info(self, data=None): "Display the About dialog " about = gtk.AboutDialog() about.set_name(Info.name) about.set_version(Info.version) about.set_comments(Info.description) about.set_copyright(Info.copyright) # Esto es para la pagina del programa o alguna refencia del mismo en la red #def openHomePage(widget,url,url2): # Para abrir el sitio # import webbrowser # webbrowser.open_new(url)

#gtk.about_dialog_set_url_hook(openHomePage,Info.website) #about.set_website(Info.website) about.set_authors(Info.authors) about.set_license(Info.license) about.set_wrap_license(True) # Adapta el texto a la ventana about.run() about.destroy()# Ahora declaramos las acciones a realizar (por menús, botones, etc.):

#

# Definimos la ventana about (help > About)

def on_imagemenuitem10_activate(self, widget): self.about_info()

# Definimos las acciones a realizar al apretar el botón def on_button1_clicked(self, widget):# Esta es la llamada al archivo popen("sh 11.sh")

if __name__== "__main__": MainGui() gtk.main()

Ese fue el código en python para mandar llamar un ejemplo de RA.

Ahora a conectar glade con python en el panel derecho llamado inspector ubicamos el menubar1 y desplegamos lo que contiene hasta encontrar el objeto imagemenuitem10, una vez que lo ubicamos vamos al panel de abajo para ver sus propiedades y en la pestaña señales activamos el objeto con active y como manipulador le damos on_imagemenuitem10_activate

verificamos que en el código python tenga ese mismo nombre en caso de no ser así lo cambiamos.

Hacemos lo mismo para el botón pero ahora con el evento clicked

ahora debemos ejecutar el archivo python

Prueba

para ejecutarlo se deben tener >

● archivo .glade● archivo .py● archivo compilado del programa● archivo .sh

todos en la mismo carpeta y al mismo nivel

ahora desde una terminal cd Escritorio/tapir/bin && ls && python interfaceT.py

nos muestra