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

Reply via email to