Hi Dieter, I just realized that your sample code displays a tooltip per row. What I would like to do is display the tip per column. So, if I'm in column 3, I see "In column 3" or whatever, regardless of the row. How should I modify your sample code to do that?
On Fri, Dec 3, 2010 at 4:25 AM, Dieter Verfaillie <[email protected]> wrote: > 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. > -- Gerald Britton _______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
