Hi, some time ago [1] I tried hard to make a treeview header widget to be sensitive to press-event, with no luck.
Now I just want to change the cursor but I can't do it eather. I can change the widget into a Label + EventBox, make it hihglight when mouse hoovers it but I can't make the EventBox change the cursor. The attached code is my attempt to make it change the cursor. Does anybody know how to make it work? TIA sandro *:-) [1] http://www.mail-archive.com/pygtk@daa.com.au/msg17784.html -- Sandro Dentella *:-) http://sqlkit.argolinux.org SQLkit home page - PyGTK/python/sqlalchemy ---------------------------------------------------------------------- import gtk HAND2 = gtk.gdk.Cursor(gtk.gdk.HAND2) LBL_HOOVER_STYLE = gtk.gdk.color_parse('red') class TreeMenu(object): def __init__(self): window = gtk.Window() vbox = gtk.VBox() label = self.make_label("label con hand2") mb = gtk.MenuBar() mb2 = gtk.MenuBar() tv = gtk.TreeView() self.m = create_menu_button("File") window.add(vbox) vbox.add(mb) vbox.add(label) vbox.add(tv) mb.append(self.m) window.show_all() liststore = gtk.ListStore(str, str) tv.set_model(liststore) liststore.append(['abc', 'xyz']) cr = gtk.CellRendererText() cr2 = gtk.CellRendererText() tc = gtk.TreeViewColumn('A', cr, text=0) tc2 = gtk.TreeViewColumn('B', cr, text=1) tc.set_clickable(True) tc2.set_clickable(True) m = create_menu_button("I'm a MenuItem with submenu") ev_box = self.make_label("I'm a label with changed cursor") # this to experiment with MenuItem as tc.set_widget(mb2) tc2.set_widget(ev_box) mb2.append(m) mb2.show_all() tc.set_clickable(True) tv.append_column(tc) tv.append_column(tc2) window.show_all() def ene_cb(self, eb, event): eb.get_child().set_state(gtk.STATE_PRELIGHT) return True def lne_cb(self, eb, event): eb.get_child().set_state(gtk.STATE_NORMAL) return True def make_label(self, label="label"): label = gtk.Label(label) event_box = gtk.EventBox() event_box.add(label) event_box.connect('realize', self.realize_cb) event_box.connect('enter-notify-event', self.ene_cb) event_box.connect('leave-notify-event', self.lne_cb) label.modify_fg(gtk.STATE_PRELIGHT, LBL_HOOVER_STYLE) event_box.connect("realize", self.realize_cb) event_box.show_all() return event_box def realize_cb(self, widget): widget.window.set_cursor(HAND2) def create_menu_button(label): m = gtk.MenuItem(label) menu = gtk.Menu() m.set_submenu(menu) menu.append(gtk.MenuItem('Item 1')) menu.append(gtk.MenuItem('Item 2')) menu.append(gtk.MenuItem('Item 3')) m.show_all() return m t = TreeMenu() gtk.main() _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/