The biggest thing for me has been to embrace the widget model. I had a
lot of struggles trying to convert existing Maya interfaces over, which
led to a lot of "how do I get x interface element in PyQt" questions
(The framelayout was a particular headache for me, but I learned a lot
about the internals of the layout system trying to rebuild it). The
thing is, PyQt gives you the base widgets to build just about anything
you want, where maya gives you a lot of prebuilt interfaces so you can
build very rapidly (while losing some flexibility in the process).
So for me, the key was to redesign my interfaces from the ground up--not
thinking about "how can I recreate this existing interface?", and
instead thinking about "How do I want the user to experience this
tool?" It was a bit painful with all of the existing work I'd put in
before I hit the limits of Maya's interface functionality, but once I
started redesigning I realized that a lot of the choices I'd made before
were to work within the limitations of the old system, and I was wasting
a lot of time trying to recreate something that wasn't really necessary.
From there, it was just "which element will accomplish what I'm looking
for," and then diving into the documentation and forums to figure out
how to do it.
Working with the Qt Model/View/Delegate system has also been
challenging, but no more so than it was with WPF for me. The biggest
challenge there is in working with the QVariants that Qt uses
internally. I also just discovered that you can put a definition in
your imports to remove QVariants entirely for sip, but at this point my
codebase has gotten rather large again so I just deal with them.
On 2/16/2014 1:48 AM, Mark Serena wrote:
Cheers Joe. Any other things helped you get a grasp of it? Always good
to find some golden egg hidden on the inter-web/warren
On Sun, Feb 16, 2014 at 5:06 PM, Joe Weidenbach <[email protected]
<mailto:[email protected]>> wrote:
Hey Mark,
Just wanted to throw this out to you, I switched to PyQt about 8
months ago, and am finally getting the hang of it (of course I'm
working on it part time between school, my day job (Where I use C#
with WPF), my second job, and running an indie game development
team, so that could contribute to how long it's taken me to pick
it up :P). It does take time to get used to the PyQt thought
process, but it will come. Of all the resources I've used, I keep
coming back to Justin's, so you're on the right track with that one.
Best of luck,
Joe
On 2/15/2014 5:39 PM, Mark Serena wrote:
Cool, well there's a lot of new territory for me to cover, I'm
currently watching your cmiVFX vid on PyQt and also got the one
off CGSociety, so hopefully I'll feel less lost soon.
Thanks again Justin.
On Sun, Feb 16, 2014 at 12:35 PM, Justin Israel
<[email protected] <mailto:[email protected]>> wrote:
Hah, ya no worries. This wasn't the type of question I had
posted about. It was based on my existing previous example,
and more theoretical about how much could be done with the
render view panel. I was interested in testing it.
Technically mostly everything in the Maya UI can be hijacked
to some extent. The render view button calls a runtime
command that you could probably swap out to launch yours. If
you made your app a scripted plugin, then you could have it
hijack that functionality on plugin load, and restore it on
unload maybe.
On Feb 16, 2014 2:26 PM, "Mark Serena" <[email protected]
<mailto:[email protected]>> wrote:
Ooooo that's perfect!!! Thank you very much for looking
into that Justin, I remember your post about people
asking questions and expecting the answer laid out for
them, I wasn't trying to coax you into writing anything,
but thank you for the example!
It's possible to make the default render button launch my
new UI right? I'm sure the Charcoal Script Editor that
Chris Zubrigg does this. I might look into that and that
should stop the focus being stolen?
Thanks again!
--
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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/CACfkVJc1bK3gtw-qi43-uG-fnhfT8Y5xhbe4eLLvyTv59wuU8A%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to a topic in
the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/python_inside_maya/pTUd6aYeQCg/unsubscribe.
To unsubscribe from this group and all its topics, send an email
to [email protected]
<mailto:python_inside_maya%[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/python_inside_maya/53005571.3090308%40gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
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/CACfkVJeifenCBy-sY6DUU8_e571SBUFBgu78N3tPnHXvraZgVw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
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/53013486.2000502%40gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.