Hey Joerg, Take this Gist <https://gist.github.com/antiero/2e849923acc24684d8420b2359ecadca> for a spin and let us know how it goes...
https://gist.github.com/antiero/2e849923acc24684d8420b2359ecadca (I've tried to #Comment it as much as poss :) Cheers, Ant ----------------------------------- from hiero.ui import menuBar, findMenuAction, registerAction from PySide import QtGui # Get the top-level MenuBar m = menuBar() myMenu = m.addMenu( 'SuperMenu' ) def doMyThing(): print "Doing Ma Thing" myAction = QtGui.QAction ( 'my entry', None ) # We can set a custom object name for the QAction... myAction.setObjectName("custom.doMyThing") # You could set the Keyboard shortcut here... myAction.setShortcut("Alt+G") myAction.triggered.connect( doMyThing ) myMenu.addAction( myAction ) # We could register it to the internal actions, so it can be retrieved anywhere... registerAction(myAction) # Then maybe retrieve the action from a different file, by finding the action like so... foundAction = findMenuAction("custom.doMyThing") # And set a new shortcut here... foundAction.setShortcut("Alt+Shift+G") On 10 October 2016 at 21:15, Joerg Bruemmer <j.bruem...@lostgraphics.de> wrote: > Hey guys, > > thanks Ant. I tried it briefly yesterday, but had no success. I am adding > 2 menu entries my self. I thought I could assign the shortcut while adding, > but that did not work as well. That's why I looked into assigning it > afterwards. I do the following to add the menu: > > m = hiero.ui.menuBar() > myMenu = m.addMenu( 'SuperMenu' ) > def doMyThing(): > execfile( 'some.py' ) > myAction = QAction ( 'my entry', None ) > hiero.ui.registerAction ( myAction ) > myMenu.addAction( myAction ) > myAction.triggered.connect( doMyThing ) > > Thanks, > > Joerg > > Antony Nasce <antonyna...@gmail.com> hat am 10. Oktober 2016 um 21:40 > geschrieben: > > > Hehe, yeah, I suppose it is a lot for what should be a simple task - just > thought I'd give the full Geek-spiel for completeness :) > > But it does give a lot of power, and again, avoids ambiguity with actions > that can have the same title. > (though you're right about needing to be user friendly - perhaps a > 'Customising the UI' section needs to be added to the Python Dev Guide, > with examples...) > > Joerg - I meant to ask, how/where is your 'my menu' action being added? > > On 10 October 2016 at 00:40, Frank Rueter|OHUfx <fr...@ohufx.com> wrote: > > That's a lot of geekism for adding a hotkey to an existing action :-D > We definitely need to make this more user friendly. > > > > On 10/08/2016 09:43 PM, Antony Nasce wrote: > > Hey Joerg, > > Firstly, might've been a typo, but it should be: > > from *hiero.ui* import findMenuAction > (not hiero.core) > > Next, one of the nice things about findMenuAction is that it can find > actions by the QAction's objectName, rather than just the action title. > This is useful to avoid ambiguity, when you have actions with the same name > for instance, e.g. 'Timeline' in the Workspace menu, and 'Timeline' on the > top level menu bar. > > Here's the help on findMenuAction: > > ------------------------------------ > > "findMenuAction(name) > > Find a QAction in the main menubar. The 'name' parameter specifies the > name of the action. > > The name may be either an internal action name or a display name. e.g. > 'Cut', or (better) 'foundry.application.cut'." > > ------------------------------------ > > > So the recommended way to use findMenuAction is to find via the action's > objectName (if its been set!) > > If you run the code below you'll see how the objectNames for the top level > menubar actions appear internally: > > M = hiero.ui.menuBar() > > for act in M.actions(): > > objectName = act.objectName() > > if objectName: > > print act.objectName() > > (Note, to retrieve the actual QMenu object for these top level menu > actions, you need to call act.*menu()* on them) > > You can set an action's objectName via: > > action.setObjectName('my.amazing.action') > > Then findMenuAction can work with this objectName: > > findMenuAction('my.amazing.action') > > Another nice thing to do if you want to retrieve an action and use it > somewhere is to register it internally, via hiero.ui.registerAction( action > ) > > You can then retrieve it using hiero.ui.findRegisteredAction > > I hope this helps, let us know how you get on! > > Cheers, > Ant > > > ---------- Forwarded message ---------- > From: *Frank Rueter|OHUfx* <fr...@ohufx.com> > Date: Fri, Oct 7, 2016 at 6:44 AM > Subject: Re: [Nuke-python] Nuke Studio assigning Menu Shortcuts > To: nuke-python@support.thefoundry.co.uk > > > Wasn't there this weird issue where you had to put everything into the > edit menu as well if you want the hotkey to work? > Try that and see if it works. > > > > On 10/07/2016 05:46 PM, Joerg Bruemmer wrote: > > Hey guys, > what am I doing wrong here: > > from hiero.core import findMenuAction > from PySide import QtGui > > menuItem = findMenuAction('my menu') > menuItem.setShortcut(QtGui.QKeySequence('Alt+G')) > > I have that in my StartupUi folder as .py, but it does not get picked up. > Running it in script editor in UI works though. > > Thanks, > Joerg > > > _______________________________________________ > Nuke-python mailing listnuke-pyt...@support.thefoundry.co.uk, > http://forums.thefoundry.co.uk/http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > _______________________________________________ Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > _______________________________________________ > Nuke-python mailing listnuke-pyt...@support.thefoundry.co.uk, > http://forums.thefoundry.co.uk/http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > -- ~~~~~~~~~~~~~~~~~~~ Antony Nascè, Tel: +44 (0) 7793 823444
_______________________________________________ Nuke-python mailing list Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python