[pygtk] Tooltips on MenuItem and ui_manager

Timo timomlists at gmail.com
Wed Sep 8 18:12:06 WST 2010


On 08-09-10 09:51, Alessandro Dentella wrote:
> here is the code that shows what I mean. The action 'Test' has a tooltip in
> the ToolButton and not in the meny entry:
>
> thanks in advance for any possible hint/explanation
>    
Connect the uimanager to the connect-proxy signal, there you can set 
tooltips to the menuitems.
See in-code for a working implementation.

Note: this maybe can be easier, I just modified it from my code where I 
show a statusbar message when the mousepointer goes over the menuitems.

Cheers,
Timo

> import gtk
>
> GENERAL_UI = '''
>    <menubar name="Main">
>       <menu action="File">
>          <menuitem action="Test"/>
>      </menu>
>    </menubar>
>    <toolbar name="TbMain">
>       <toolitem action="Test"/>
>    </toolbar>
>   '''
>
> class Test(object):
>
>      def __init__(self):
>          w = gtk.Window()
>          h = gtk.VBox()
>          w.add(h)
>
>          actions = gtk.ActionGroup('test')
>          actions.add_actions([
>              ('File', None, 'FILE'),
>              ('Test', gtk.STOCK_ABOUT, 'Test name', None, 'Tooltip for test', self.debug),
>              ])
>
>          ui_manager = gtk.UIManager()
>    
         ui_manager.connect('connect-proxy', self.uimanager_connect_proxy)
>          ui_manager.add_ui_from_string(GENERAL_UI)
>          ui_manager.insert_action_group(actions)
>
>          menu    = ui_manager.get_widget('/Main')
>          toolbar = ui_manager.get_widget('/TbMain')
>
>          h.add(menu)
>          h.add(toolbar)
>          w.resize(200, 60)
>          w.show_all()
>    
     def uimanager_connect_proxy(self, uimgr, action, widget):
         tooltip = action.get_property('tooltip')
         if isinstance(widget, gtk.MenuItem) and tooltip:
             widget.set_tooltip_text(tooltip)
>      def debug(self, action):
>          print action
>
> t = Test()
>
> gtk.main()
>
>
> On Wed, Sep 08, 2010 at 09:26:52AM +0200, Alessandro Dentella wrote:
>    
>> Hi. Sorry for reposting. But it seems strange to me that such an ordinary
>> feature of Actions/MenuItem tooltip is not known by anybody.
>>
>> Most of the application I see do have tooltips on menuItems: I can't believe
>> I should copy tooltips from action to MenuItem by hand...
>>
>>
>> I've searched in the docs to see if there is a flag that enables them w/o
>> finding anything.
>>
>> sandro
>> *:-)
>>
>> On Thu, Sep 02, 2010 at 10:13:37AM +0200, Alessandro Dentella wrote:
>>      
>>> Hi again,
>>>
>>>
>>> I use  UIManager() + group_action.add_actions() to create MenuItems and
>>> ToolItems. I set tooltips as required by actiongroup.add_actions( 5^ field).
>>>
>>> These tooltip show correctly for toolitems but they won't for menu
>>> entries. Is it the desired behaviour? What can I do to have tooltips for
>>> MenuItems as well? Note that
>>>
>>>    ui_manager.get_action(action_name).props.tooltip
>>>
>>> shows the tooltip correctly while *both* menyitem and toolitem don't (but
>>> toolitem shows the tooltip correctly....):
>>>
>>>    ui_manager.get_widget(menu_entry_name).props.tooltip_text   ### None
>>>    ui_manager.get_widget(tool_entry_name).props.tooltip_text   ### None
>>>
>>>
>>> .set_tooltip_text() works correctly in menu items, but it's terribly
>>> inconvenient to set them one by one when I already set tooltips in the
>>> actions, I guess I'm missing something!
>>>
>>>
>>> any hints?
>>>
>>> thanks
>>>
>>> sandro
>>> *:-)
>>>
>>>
>>>
>>>
>>> -- 
>>> Sandro Dentella  *:-)
>>> http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy
>>> _______________________________________________
>>> pygtk mailing list   pygtk at daa.com.au
>>> http://www.daa.com.au/mailman/listinfo/pygtk
>>> Read the PyGTK FAQ: http://faq.pygtk.org/
>>>        
>> -- 
>> Sandro Dentella  *:-)
>> http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy
>> _______________________________________________
>> pygtk mailing list   pygtk at daa.com.au
>> http://www.daa.com.au/mailman/listinfo/pygtk
>> Read the PyGTK FAQ: http://faq.pygtk.org/
>>      
>    



More information about the pygtk mailing list