[pygtk] Can I add a non menu as a submenu?
Jon Dufresne
jon.dufresne at gmail.com
Fri Sep 22 09:29:53 WST 2006
Hi!
I have been studying the pygtk tutorial (or any gtk for that matter)
for a week now, so bear with me if I don't have everything straight.
Basically I want to have a menu in my program. So I created a MenuBar,
and appended a MenuItem to it. Now when I click this MenuItem I don't
want a menu to pop up like one normally would, instead I want a
ListStore to pop up. Is this possible? I tried doing it the way I
thought might work but I had no luck.
Below is an example piece of code to work the way I had in mind. When
I run it it complains:
example.py:26: GtkWarning: gtk_menu_attach_to_widget: assertion
`GTK_IS_MENU (menu)' failed
menu_item.set_submenu(tree_view)
This makes sense but I was wondering if there is some way around this.
Thanks for any help!
This is what my example code looks like that generated this warning:
#/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
class Example:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
menu_item = gtk.MenuItem("hello")
menu_bar = gtk.MenuBar()
menu_bar.append(menu_item)
list_store = gtk.ListStore(str)
for i in range(4):
list_store.append(["list store item %i" % i])
tree_view = gtk.TreeView(list_store)
col = gtk.TreeViewColumn("Column")
tree_view.append_column(col)
cell = gtk.CellRendererText()
col.pack_start(cell, True)
col.add_attribute(cell, 'text', 0)
menu = gtk.Menu()
self.window.add(menu_bar)
menu_item.set_submenu(tree_view)
def main(self):
self.window.show_all()
gtk.main()
Example().main()
More information about the pygtk
mailing list