Popupmenu con pygtk

Jordi Ivars ear en oronetes.net
Lun Feb 21 12:23:57 CET 2005


Hola a todos.

El otro dia pregunté acerca de añadir iconos a unos menus que habia
hecho y parece ser que estaba usando un método obsoleto para menus, asi
que me he puesto manos a la obra para intentar reproducir el menu popup
que tenia hecho. Basicamente hago lo siguiente:

ui_string = """<ui>
		<popup name='Popup'>
	    <menuitem action='New'/>
        <menuitem action='Open'/>
		</popup>
		</ui>"""

ag = gtk.ActionGroup('WindowActions')
		actions = [
	    ('New',      gtk.STOCK_NEW, '_New', '<control>N', 'Create a new
file', self.menu_response),
        ('Open',     gtk.STOCK_OPEN, '_Open', '<control>O', 'Open a
file', self.menu_response),
		]

ag.add_actions(actions)
self.ui = gtk.UIManager(gtk.UI_MANAGER_POPUP)
self.ui.insert_action_group(ag, 0)
self.ui.add_ui_from_string(ui_string)
widget = self.ui.get_widget("/Popup")

Hasta aqui supongo que el menu está correctamente construido, me parece
a mi. Solo que aun tengo que mostrarlo. Intento hacerlo con una vbox,
asi:

vbox = gtk.VBox()
vbox.pack_start(widget,expand=True)
self.vbox1.add(vbox)
vbox.show()

self.vbox1 es la caja principal donde va alojado el popupmenu. He ido
combinando distintas posibilidades, pero nada. Si añador un print
widget.get_name() veo que me imprime el nombre correcto (Popup) y lo
hace cada vez que le doy al boton del ratón, con lo que al menu si
llega, pero no lo dibuja. En algunos casos (en el que pongo de ejemplo)
me da un error, que es:

menus.py:279: GtkWarning: gtk_box_pack_start: assertion `child->parent
== NULL' failed
  vbox.pack_start(widgets,expand=True)

Pero me sigo perdiendo igual, me parece que debo estar cerca, pero
bueno, que no lo cojo y no hay muchos ejemplos de uimanager por google
que me valgan.

En fin, espero que a alguien le suene todo esto:). Muchísimas gracias
por vuestra atención y saludos.

Jordi Ivars
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/python-es/attachments/20050221/560db847/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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