[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