Quoting "Gerald Britton" <[email protected]>:
Hi -- I have a treeview where I want tooltips to display upon
mouse-hover.  I need help to see what I'm missing in this section
since the tips are not popping up:  ("columns" is a simple list of
column names)

        self.view = gtk.TreeView()
        self.model = gtk.ListStore(*[str] * (len(columns) + 1))
        for index, name in enumerate(columns):
            renderer = gtk.CellRendererText()
            if index > 0:
                renderer.set_property('editable', True)
                renderer.connect('edited', self.__cell_edited,
                                                (self.model, index + 1))
            column = gtk.TreeViewColumn(name, renderer, text=index + 1)
            foo = gtk.Tooltip()
            foo.text = name
            self.view.append_column(column)
            self.view.set_tooltip_cell(foo, None, column, None)


Here's a working example:

8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<
import gtk

class TestWindow(gtk.Window):
    def __init__(self):
        gtk.Window.__init__(self)

        column_types = [str, str, str]
        columns = ['index', 'something', 'whatever']

        self.model = gtk.ListStore(*column_types)
        self.view = gtk.TreeView(self.model)
        self.view.set_headers_visible(True)
        self.view.set_has_tooltip(True)
        self.view.connect('query-tooltip', self.on_query_tooltip)

        for index, name in enumerate(columns):
            renderer = gtk.CellRendererText()

            if index > 0:
                renderer.set_property('editable', True)

            column = gtk.TreeViewColumn(name, renderer, text=index)
            self.view.append_column(column)

        self.model.append(['0', 'test', 'dfjqkm'])
        self.model.append(['1', 'test', 'arearzer'])

        self.add(self.view)
        self.show_all()

    def on_query_tooltip(self, widget, x, y, keyboard_tip, tooltip):
        if not widget.get_tooltip_context(x, y, keyboard_tip):
            return False
        else:
            model, path, iter = widget.get_tooltip_context(x, y, keyboard_tip)

            tooltip.set_markup('<b>Value: %s</b>' % model.get_value(iter, 2))
            widget.set_tooltip_cell(tooltip, path, None, None)
            return True


def quit(widget, event):
    gtk.main_quit()


if __name__ == '__main__':
    window = TestWindow()
    window.connect('delete-event', quit)

    gtk.main()
8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<8<

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to