[Python-es] [Fwd: Ayuda con PYGTK]

santiago santiagopereyra.14 en gmail.com
Vie Mar 4 22:46:01 CET 2011


#! /usr/bin/env python
import gtk, os

class princ:
def __init__(self):
self.win1 = gtk.Window()
self.but1 = gtk.Button('Boton 1')
self.but2 = gtk.Button('Boton2')
self.hb = gtk.HBox()
 self.win1.add(self.hb)
self.hb.pack_start(self.but1)
self.hb.pack_start(self.but2)
 self.but1.connect('focus-in-event', self.but1_focus)
self.but2.connect('focus-in-event', self.but2_focus)
self.win1.connect('destroy', gtk.main_quit)
 self.win1.show_all()

def but1_focus(self, widget, b):
print 'Boton 1 en foco'

def but2_focus(self, widget, b):
print 'Boton 2 en foco'
princ()
gtk.main()

esto hace algo muy parecido a lo que buscas, te recomiendo que vayas
probando señales hasta que encuentres lo que buscas (focus-in-event es una
señal de GtkWidget, si te interesa)

El 4 de marzo de 2011 16:12, manuel <lalo_america11 en hotmail.com> escribió:

>  Hola.
>
> Gracias por la respuesta, pero en lo que se refiere a los botones, creo que
> sería algo un poco más complicado.
>
> Explico.
>
> Como el programa está pensado para que se pueda utilizar por una persona
> ciega sin tener que usar ningún tipo de ayuda técnica, necesito hacer que el
> programa me pueda decir cuando el foco del teclado está en un botón, la
> función enter funcionaba pero con el mouse creo, ya que al intentar probarlo
> para la reproducción del sonido no hace el efecto deseado, el efecto final
> es que cuando yo pulse la flecha, hacia la derecha por ejemplo llegue al
> botón que dice salir, y que con un método o una señal(había escuchado algo
> acerca de una tal gtk.gdk.focus_changed pero no sé si exista o esté mal
> escrita) lo pueda conectar a una función que hará que pygame.mixer.sound
> reprodusca un sonido de una voz grabada con la palabra salir, así un ciego
> puede escuchar el menú, pero sería poco práctico que para poder saber el
> nombre del botón se tenga que pulsar dicho botón.
>
> Lo de las ventanas no se me había ocurido, pensaba que había otro método o
> algo así, gracias.
>
> Saludos
>
> El 04/03/11 11:27, craf escribió:
>
> --------- Mensaje reenviado --------
>
>  De: manuel <lalo_america11 en hotmail.com> <lalo_america11 en hotmail.com>
> Reply-to: La lista de python en castellano <python-es en python.org> <python-es en python.org>
> Para: La lista de python en castellano <python-es en python.org> <python-es en python.org>
> Asunto: [Python-es] Ayuda con PYGTK
> Fecha: Fri, 4 Mar 2011 08:40:22 -0600
>
> Hola.
>
> Soy nuevo usuario de la lista y ya tengo dos preguntas, espero y no sean
> demaciado tontas, pero espero y me puedan ayudar ya que no pude
> encontrarlo mucho por otros lados.
>
> Las cosas van sobre PYGTK.
>
> Lo que pasa es que estoy haciendo la parte gráfica de una aplicación que
> un compañero programó, lo que tengo que hacer solamente es crear el menú
> gráfico que sirva de acceso a las aplicaciones y pues he decidido usar
> PYGTK sobre GNU/Linux ya que soy ciego y las librerías GTK+ conectan con
> las de accesibilidad(AT-SPI) a diferencia de las qt o java(java tiene su
> propio toolkit, pero no es muy bueno).
>
> Lo que quisiera hacer es que cuando el usuario se posisione sobre un
> botón por ejemplo, se pudiera reproducir un sonido, esto lo hago porque
> el requisito del programa es que pueda ser inclusivo para todos, esto
> significa que yo lo pueda usar sin mi lector de pantalla, para esto
> quisiera hacer una grabación de voz para cada botón, pero no sé como
> hacer que pygtk me diga en que botón está el usuario para decirle luego
> que reprodusca el sonido que quiera.
>
> Y la otra consulta es: estuve leyendo el manual de PYGTK en español y
> hay algo que nunca me quedó claro, cuando se crea una ventana no hay
> modo de cerrarla pero sin llamar a gtk.main_quit(), ya que esto la
> destruye, pero no me deja abrir otra, aún no sé como hacer para que se
> cierre la ventana principal y solo quede la ventana nueva, o como hacer
> para lograr eso, como en todos los programas, uno selecciona una opción
> y se cambia la ventana, pero como se hace eso en pygtk?
>
> Gracias de antemano y perdón por las molestias.
>
> saludos
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>  Hola Manuel
>
> Para saber sobre que botón esta el cursor del usuario, puedes usar el
> evento 'enter' y el evento 'leave'.
>
> Te adjunto el código:
>
> ------------------------------------------------------------------
> import gtk
>
> class Button:
>     def __init__(self):
>         window = gtk.Window()
>         button = gtk.Button("Button")
>
>         window.connect("destroy", lambda w: gtk.main_quit())
>         button.connect("enter", self.button_enter)
>         button.connect("leave", self.button_leave)
>
>         window.add(button)
>         window.show_all()
>
>     def button_enter(self, widget):
>         print "El usuario esta sobre el boton"
>
>     def button_leave(self, widget):
>         print " El usuario salio del boton"
>
> Button()
> gtk.main()
> ------------------------------------------------------------
>
> Con respecto a la creación de una ventana secundaria, para que la puedas
> mostrar ,y ocultar la ventana principal, debes utilizar el método
> 'hide'.
>
> Aquí un ejemplo:
> ------------------------------------------------------------------
> import gtk
>
> class Button:
>     def __init__(self):
>         self.ventanaprincipal = gtk.Window()
>         self.ventanaprincipal.set_title('Ventana Principal')
>         self.button = gtk.Button("Mostrar ventana Secundaria")
>
>         self.ventanaprincipal.connect("destroy", lambda w:
> gtk.main_quit())
>         self.button.connect("clicked", self.button_clicked)
>
>
>         self.ventanaprincipal.add(self.button)
>         self.ventanaprincipal.show_all()
>
>     def button_clicked(self, widget):
>         self.ventanaprincipal.hide()
>         self.ventanasecundaria = gtk.Window()
>         self.ventanasecundaria.set_title('Ventana Secundaria')
>         self.ventanasecundaria.show()
>
>
>
> Button()
> gtk.main()
>
> ------------------------------------------------------------------
>
> Espero que te sirvan de algo los ejemplos y suerte en tu proyecto.
>
> Saludos.
>
> Cristian.
>
>
> _______________________________________________
> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> --
> Atte: Manuel Eduardo Cortéz Vallejo http://livemanuel.wordpress.com
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110304/5c9111fe/attachment.html>


Más información sobre la lista de distribución Python-es