[Sur] Duda sobre GtkMenuItem y GtkScale
Flavio Danesse
fdanesse en gmail.com
Mar Jul 30 08:22:16 EDT 2013
*Paso 1 (Empaquetar correctamente los widgets):*
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gi.repository import Gtk
class Ventana(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self)
self.set_size_request(200, 200)
vbox = Gtk.VBox()
menu_bar = Gtk.MenuBar() # Barra de
Menús.
menu1 = Gtk.Menu() # menú
propiamente dicho.
items_menu1 = Gtk.MenuItem('SubMenu 1') # Item para barra de
menús.
items_menu1.set_submenu(menu1) ### Al item en la menubar se le
agrega el menu.
menu_bar.append(items_menu1)
item = Gtk.MenuItem('SubMenu 1 - Item 1')
menu1.append(item)
item = Gtk.MenuItem('SubMenu 1 - Item 2')
menu1.append(item)
item = Gtk.MenuItem()
item.remove(item.get_child())
scale = Gtk.HScale()
scale.set_adjustment(Gtk.Adjustment(0, 0, 10, 1, 1, 0))
item.add(scale)
menu1.append(item)
vbox.pack_start(menu_bar, False, False, 0)
self.connect('destroy', Gtk.main_quit)
self.add(vbox)
self.show_all()
if __name__ == '__main__':
Ventana()
Gtk.main()
*PD:*
En el paso dos, debes lograr que cuando el menú esté desplegado y el foco
sobre la escala, al hacer click con el mouse, los eventos se ejecuten sobre
la escala y no sobre el menú para que se pueda deslizar la barrita.
El 29 de julio de 2013 14:46, Cristian García
<cristian99garcia en gmail.com>escribió:
> La verdad es que no me había fijado, pero luego de hacerlo, me metí a
> probar código, y esas cosas...
>
> Igualmente no pude adaptarlo a Gtk(fuera de Sugar) ya que no sé por qué,
> pero importo esa clase y hago todo lo que se hace ahí y no me funciona, me
> hace exactamente lo que hacía al principio :P
>
> Pero gracias por querer ayudar ;)
>
>
> El 29 de julio de 2013 10:58, Gonzalo Odiard <gonzalo en laptop.org>escribió:
>
> Te fijaste en
>> https://github.com/sugarlabs/sugar/blob/master/extensions/deviceicon/speaker.py#L87
>> ?
>>
>> Gonzalo
>>
>>
>> 2013/7/28 Cristian García <cristian99garcia en gmail.com>
>>
>>> Hola comunidad!
>>>
>>> Sé que no me conocen porque nunca había participado(al menos no que yo
>>> me acuerde), pero ya que estamos, quería ver si alguien de ustedes me podía
>>> responder la siguiente duda sobre Gtk(Pygi):
>>>
>>> ¿Cómo se puede hacer para empaquetar un GtkScale en un GtkMenuItem y que
>>> la escala funcione bien?(algo así como lo que usan los escritorios para el
>>> volumen)
>>>
>>> Tengo el siguiente código de ejemplo para mostrar lo que sucede:
>>>
>>> #!/usr/bin/env python
>>> # -*- coding: utf-8 -*-
>>>
>>> from gi.repository import Gtk
>>>
>>>
>>> class Ventana(Gtk.Window):
>>>
>>> def __init__(self):
>>>
>>> Gtk.Window.__init__(self)
>>>
>>> self.set_size_request(200, 200)
>>>
>>> vbox = Gtk.VBox()
>>> menu_bar = Gtk.MenuBar()
>>>
>>> menu_item_archivo = Gtk.MenuItem('Archivo')
>>> menu_bar.add(menu_item_archivo)
>>> menu_archivo = Gtk.Menu()
>>> menu_item_archivo.set_submenu(menu_archivo)
>>>
>>> menu_archivo.append(Gtk.MenuItem('Abrir'))
>>> menu_archivo.append(Gtk.MenuItem('Guardar'))
>>>
>>> item = Gtk.MenuItem()
>>> escala = self.crear_escala()
>>> item.add(escala)
>>> menu_archivo.append(item)
>>>
>>> vbox.add(self.crear_escala())
>>>
>>> menu_archivo.append(Gtk.MenuItem('Cerrar'))
>>>
>>> vbox.pack_start(menu_bar, False, False, 5)
>>>
>>> self.connect('destroy', Gtk.main_quit)
>>>
>>> self.add(vbox)
>>> self.show_all()
>>>
>>> menu_bar.show_all()
>>>
>>> def crear_escala(self):
>>>
>>> scale = Gtk.HScale()
>>> adjustment = Gtk.Adjustment(0, 0, 10, 1, 1, 0)
>>> scale.set_adjustment(adjustment)
>>>
>>> return scale
>>>
>>> if __name__ == '__main__':
>>> Ventana()
>>> Gtk.main()
>>>
>>> Gracias desde ya y
>>> Saludos a todos :D.
>>>
>>> _______________________________________________
>>> Lista olpc-Sur
>>> olpc-Sur en lists.laptop.org
>>> http://lists.laptop.org/listinfo/olpc-sur
>>>
>>>
>>
>> _______________________________________________
>> Lista olpc-Sur
>> olpc-Sur en lists.laptop.org
>> http://lists.laptop.org/listinfo/olpc-sur
>>
>>
>
> _______________________________________________
> Lista olpc-Sur
> olpc-Sur en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-sur
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.laptop.org/pipermail/olpc-sur/attachments/20130730/58170cfa/attachment.html>
More information about the olpc-Sur
mailing list