On Sun, Aug 16, 2020, 8:10 AM vince touache <[email protected]> wrote:

> hey Marcus =]
>
> Thanks for the answer! this is what I ended up doing, I access the
> clipboard using QActions with shortcuts, and it works just fine! I'm still
> curious to understand better how maya interacts with QApplication exactly,
> I can't find much resource about.
> Anyway, problem solved, thanks ^__^
>

You could just consider Maya a generic QMainWindow application running a
QApplication instance that your tool gets to share. There are a couple
factors about the clipboard and event propagation. The QClipboard docs talk
about ownership on X11 and where notifications are actually delivered. But
specifically about the QShortcut approach that Marcus offered, it likely
has to do with which widget emits and owns the ctrl+c and ctrl+v keypress
event. If you don't define your own, then the event bubbles up to the first
place that it is accepted, which ends up being the QMainWindow or any of
Maya's own child widgets that implemented it as your parent widget (it also
depends on under which widget you parented your tool). So when you define
your own shortcut, it means you get to handle the keypress first when you
are in focus. So you are the owner of the clipboard activity.
That is my best attempt to explain it in a general non-maya-specific
context.


> Le samedi 15 août 2020 à 02:22:14 UTC-4, Marcus Ottosson a écrit :
>
>> Hey Vince :)
>>
>> Try assigning a QShortcut to your QApplication instead of leveraging
>> signals; they'll work better with keyboard and input in general, and they
>> supersede any native Maya hotkey, at any level of the application.
>>
>> 1. On focus (e.g. window activation) create QShortcut
>> 2. On deactivation delete QShortcut
>>
>>
>> On Fri, 14 Aug 2020 at 21:11, vince touache <[email protected]> wrote:
>>
>>> hi guys,
>>>
>>> I'm working on a new tool, in which I would like to implement a
>>> ctl+c/ctl+v to duplicate some (non-serialized) data, e.g. QWidget,
>>> QGraphicsItem, etc...
>>> So I'm getting the clipboard from the maya instance using
>>> QApplication.instance().clipboard(), works fine.
>>>
>>> However, when I connect my clipboard.dataChanged signal and try to
>>> ctrl+c in my widget, it doesn't trigger the method I provided; instead, it
>>> just behaves like the regular maya clipboard, returning me an error because
>>> nothing is selected in my 3d viewport. Seems that ass soon as the focus in
>>> on my widget, maya understands it as if the focus was on the viewport
>>> instead. If I copy anything in maya, or even outside of maya, however,
>>> that'll trigger my slot... Looks like I'm missing some sort of
>>> "acceptClipboardEvent" in my widget...
>>>
>>> Any idea what I'm missing here?
>>>
>>> Thank you
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Python Programming for Autodesk Maya" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/python_inside_maya/d3fdc10c-9f54-4b76-aea0-9365b27f4c16n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/python_inside_maya/d3fdc10c-9f54-4b76-aea0-9365b27f4c16n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Python Programming for Autodesk Maya" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/python_inside_maya/2969d71c-3263-4efb-b916-5f0cef844cf1n%40googlegroups.com
> <https://groups.google.com/d/msgid/python_inside_maya/2969d71c-3263-4efb-b916-5f0cef844cf1n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/CAPGFgA1pNW%3DwqCUwV5S0Cyg3%2B2656d0VSmKK53a0fjN%2BhoGsrQ%40mail.gmail.com.

Reply via email to