<b>Paso 1 (Empaquetar correctamente los widgets):</b><div><br></div><div><div><font color="#000099">#!/usr/bin/env python</font></div><div><font color="#000099"># -*- coding: utf-8 -*-</font></div><div><br></div><div><font color="#990000">from gi.repository import Gtk</font></div>
<div><font color="#990000"><br></font></div><div><font color="#990000">class Ventana(Gtk.Window):</font></div><div><font color="#990000"><br></font></div><div><font color="#990000"> def __init__(self):</font></div><div>
<font color="#990000"> </font></div><div><font color="#990000"> Gtk.Window.__init__(self)</font></div><div><font color="#990000"> </font></div><div><font color="#990000"> self.set_size_request(200, 200)</font></div>
<div><font color="#990000"><br></font></div><div><font color="#990000"> vbox = Gtk.VBox()</font></div><div><font color="#990000"> </font></div><div><font color="#990000"> menu_bar = Gtk.MenuBar() </font><font color="#000099"># Barra de Menús.</font></div>
<div><font color="#990000"> </font></div><div><font color="#990000"> menu1 = Gtk.Menu() </font><font color="#000099"># menú propiamente dicho.</font></div><div><font color="#990000"> items_menu1 = Gtk.MenuItem('SubMenu 1') </font><font color="#000099"># Item para barra de menús.</font></div>
<div><font color="#990000"> items_menu1.set_submenu(menu1) </font><font color="#009900">### Al item en la menubar se le agrega el menu.</font></div><div><font color="#990000"> </font></div><div><font color="#990000"> menu_bar.append(items_menu1)</font></div>
<div><font color="#990000"> </font></div><div><font color="#990000"> item = Gtk.MenuItem('SubMenu 1 - Item 1')</font></div><div><font color="#990000"> menu1.append(item)</font></div><div><font color="#990000"> </font></div>
<div><font color="#990000"> item = Gtk.MenuItem('SubMenu 1 - Item 2')</font></div><div><font color="#990000"> menu1.append(item)</font></div><div><font color="#990000"> </font></div><div><font color="#990000"> item = Gtk.MenuItem()</font></div>
<div><font color="#990000"> item.remove(item.get_child())</font></div><div><font color="#990000"> scale = Gtk.HScale()</font></div><div><font color="#990000"> scale.set_adjustment(Gtk.Adjustment(0, 0, 10, 1, 1, 0))</font></div>
<div><font color="#990000"> item.add(scale)</font></div><div><font color="#990000"> menu1.append(item)</font></div><div><font color="#990000"> </font></div><div><font color="#990000"> vbox.pack_start(menu_bar, False, False, 0)</font></div>
<div><font color="#990000"><br></font></div><div><font color="#990000"> self.connect('destroy', Gtk.main_quit)</font></div><div><font color="#990000"><br></font></div><div><font color="#990000"> self.add(vbox)</font></div>
<div><font color="#990000"> self.show_all()</font></div><div><font color="#990000"> </font></div><div><font color="#990000">if __name__ == '__main__':</font></div><div><font color="#990000"> Ventana()</font></div>
<div><font color="#990000"> Gtk.main()</font></div><div> </div><div><b>PD:</b></div><div>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.</div>
<div><br></div><div><br></div><div><br></div><br><div class="gmail_quote">El 29 de julio de 2013 14:46, Cristian García <span dir="ltr"><<a href="mailto:cristian99garcia@gmail.com" target="_blank">cristian99garcia@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">La verdad es que no me había fijado, pero luego de hacerlo, me metí a probar código, y esas cosas...</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Pero gracias por querer ayudar ;)</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">El 29 de julio de 2013 10:58, Gonzalo Odiard <span dir="ltr"><<a href="mailto:gonzalo@laptop.org" target="_blank">gonzalo@laptop.org</a>></span> escribió:<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Te fijaste en <a href="https://github.com/sugarlabs/sugar/blob/master/extensions/deviceicon/speaker.py#L87" target="_blank">https://github.com/sugarlabs/sugar/blob/master/extensions/deviceicon/speaker.py#L87</a> ?<div>
<br></div>
<div>Gonzalo</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/7/28 Cristian García <span dir="ltr"><<a href="mailto:cristian99garcia@gmail.com" target="_blank">cristian99garcia@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Hola comunidad!<br>
<br>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):<br>
<br>¿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)</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Tengo el siguiente código de ejemplo para mostrar lo que sucede:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
<br></div><div class="gmail_default"><div class="gmail_default"><font face="arial, helvetica, sans-serif">#!/usr/bin/env python</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"># -*- coding: utf-8 -*-</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">from gi.repository import Gtk</font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">class Ventana(Gtk.Window):</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> def __init__(self):</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> Gtk.Window.__init__(self)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"> self.set_size_request(200, 200)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> vbox = Gtk.VBox()</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_bar = Gtk.MenuBar()</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"> menu_item_archivo = Gtk.MenuItem('Archivo')</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_bar.add(menu_item_archivo)</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_archivo = Gtk.Menu()</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_item_archivo.set_submenu(menu_archivo)</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_archivo.append(Gtk.MenuItem('Abrir'))</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_archivo.append(Gtk.MenuItem('Guardar'))</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> item = Gtk.MenuItem()</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> escala = self.crear_escala()</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> item.add(escala)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_archivo.append(item)</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> vbox.add(self.crear_escala())</font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_archivo.append(Gtk.MenuItem('Cerrar'))</font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> vbox.pack_start(menu_bar, False, False, 5)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> self.connect('destroy', Gtk.main_quit)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> self.add(vbox)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> self.show_all()</font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> menu_bar.show_all()</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br>
</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> def crear_escala(self):</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"> scale = Gtk.HScale()</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> adjustment = Gtk.Adjustment(0, 0, 10, 1, 1, 0)</font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"> scale.set_adjustment(adjustment)</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> return scale</font></div>
<div class="gmail_default"><font face="arial, helvetica, sans-serif"> </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">if __name__ == '__main__':</font></div><div class="gmail_default">
<font face="arial, helvetica, sans-serif"> Ventana()</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"> Gtk.main()</font></div><div style="font-family:arial,helvetica,sans-serif"><br>
</div>
<div style="font-family:arial,helvetica,sans-serif">Gracias desde ya y</div><div style="font-family:arial,helvetica,sans-serif">Saludos a todos :D.</div></div></div>
<br></div></div>_______________________________________________<br>
Lista olpc-Sur<br>
<a href="mailto:olpc-Sur@lists.laptop.org" target="_blank">olpc-Sur@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-sur" target="_blank">http://lists.laptop.org/listinfo/olpc-sur</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
Lista olpc-Sur<br>
<a href="mailto:olpc-Sur@lists.laptop.org" target="_blank">olpc-Sur@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-sur" target="_blank">http://lists.laptop.org/listinfo/olpc-sur</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Lista olpc-Sur<br>
<a href="mailto:olpc-Sur@lists.laptop.org">olpc-Sur@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-sur" target="_blank">http://lists.laptop.org/listinfo/olpc-sur</a><br>
<br></blockquote></div><br></div>