[pygtk] Can't get tool tip to display
Gerald Britton
gerald.britton at gmail.com
Fri Dec 17 05:06:41 WST 2010
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
<dieterv at optionexplicit.be> wrote:
> Quoting "Gerald Britton" <gerald.britton at gmail.com>:
>>
>> 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
More information about the pygtk
mailing list