Tr?id=215414482218848&ev=pageview&noscript=1
cmiVFX Logo

PyQt4 UI Development for Maya

Learn how to wrap your custom tools inside of a graphical user interface with PyQT4. This video is a MUST WATCH for any app making custom UI's. (Not just maya)

Length: 4 Hours 42 Minutes 42 Seconds

Note: This product is no longer available and has been maintained here for historical purposes only.

Preview.

1350047111 screen cap 8
1350047111 screen cap 7
1350047111 screen cap 4
1350047111 screen cap 3
1350047111 screen cap 2
1350047111 screen cap 1

cmiVFX just released the first of a series of training videos for PyQt4 UI Development for Maya, featuring Justin Israel. In today's modern visual effects pipeline, the need for custom tools are proven self evident through the high quality nature of recent films, shows and video games. Here at cmiVFX, we build our own tools to help communicate many apps together as seamlessly as possible. The base of this video is not just for Maya, but for ANY app structure that exists today. Maya is covered in the second half of the video to help people associate a stronger principal interfacing structure with one of today's most popular graphics packages. We would like to explicitly state that this video would be extremely helpful to a large range of VFX producers using different software pipelines. The goal of this video is to let the user interface their tools using PyQT4. NOTE: This video opens up the gateway to all of you building solid python tools for interoperability between applications, regardless if they are Maya. (So you dont need Maya to learn from this video) This video is a KEYSTONE in a VFX Pipeline Library, and recommended to all people even remotely interested in Python at all. Justin put the gui on the cmiVFX AtomSplitter app which allowed you to 3d camera track in Nuke and output to FBX with or without point cloud data. AtomSplitter is still available for download for those that want it.

Chapter Descriptions

Introduction

This tutorial is about learning PyQt4 python bindings for the Qt Framework, and how to introduce new UI elements to Maya as a platform. We discuss what comprises a "Framework" and a "GUI Framework", and how Qt and PyQt4 work together.

Getting Started With PyQt4

There are multiple ways of getting a working installation of PyQt4, both for the general system and for Maya. We look into these approaches to get your system up and running to begin working with PyQt4! We also talk about what is included, such as command line tools and applications, tips on how to test and learn the code, and how to structure a project.

PyQt4 Fundamentals

Lets get crackin' and learn the basics!

  • What is a QObject? What is a QWidget? Common PyQt4 classes are explained in detail
  • Working with the Qt Designer application, to build a UI visually
  • Layouts: Making widgets resize elegantly and stay organized in your design
  • Coordinate space: How do widgets transform in your 2D screen space?
  • QApplication and the Qt Event Loop: The engine that runs your UI
  • Events, Signals, and Slots: How components communicate changes and how the application can respond to changes to make it dynamic

General Examples

With an understanding of the framework components, we can begin working with fully functional stand-alone examples.

  • Common PyQt4 app template
  • Subclassing Widgets: Creating custom functionality to the existing classes provided by PyQt4
  • Dialogs: Raising dialog windows above existing windows, Modal vs Non-modal, and creating forms. We look at different ways to validate the data provided by the user, to these dialog forms.

PyQt4 And Maya Introduction

Finally, some Maya action! Maya has a slightly different approach to using PyQt4"¦

  • How does the QApplication and event loop work?
  • Common Maya PyQt4 app template
  • Looking at the Maya API's MQtUtil class
  • The sip module: Helping us translate between Maya's Qt and our own PyQt4 code

 

Replicating Maya's UI Components

What better way to see examples of creating UI for Maya than to replicate some existing functionality? This gives us the opportunity expand with custom functionality In this chapter we will take two different UI components in Maya, and do a basic custom version of our own, and show to how link them up to Maya's own callbacks.

Some Features Of This Chapter Include

  • The QTableWidget
  • Model / View separation with QTreeView
  • Docking windows into the Maya interface
  • Mixing together PyQt4, the Maya API, Maya commands, and callbacks
  • Sorting model data

Customizations

A button can be a button, and a slider might look alright in its stock form, but sometimes we want to customize the look of our widgets. This chapter introduces multiple ways of achieving custom looks to our components

  • Stylin' Stylesheets: Use CSS-like syntax for applying style sheets to widgets
  • Painting By "¦ Paint events: For even more control, we can tell a widget exactly how to draw itself on the screen. We will look at two different examples of how to use custom painting.

About The Mentor

Justin is a California based artist who graduated from Cal State Long Beach (CSULB) with a Bachelor's in Film and Video production. He started his Visual FX career at Stan Winston Digital as an artist and then developed strong pipeline/programming skills at Sony Pictures Imageworks while working on Spiderman 3, I Am Legend and The Watchmen. Justin currently works as Senior Pipeline Developer on the award winning television series South Park, designing tools for Maya, Nuke, and general pipeline. His passion for live-action visual effects and film leads Justin to gain fundamental knowledge in all facets possible. His experience includes paint, roto, compositing, python and pipeline development. His work includes feature films such as Tropic Thunder, Commander & Chief, The Compass, Bride Wars, Mamma Mia, I Am Legend, Spiderman 3, The Watchmen, Fantastic Four and more.

Justin has worked as both an artist and a visual fx supervisor, in film and television, as well as directing and practical lighting experience, and constantly looking for new challenges and opportunities to learn. Justin's website is http://www.justinfx.com

Project Contents

All cmiVFX videos come with all the training materials you can need right from our website. No matter what time of day, your location, or how your feeling, cmiVFX will be there waiting for you!

Availability:

Note: This product is no longer available and has been maintained here for historical purposes only.

About Justin Israel

Justin is a California based artist who graduated from Cal State Long Beach (CSULB) with a Bachelor's in Film and Video production. He started his Visual FX career at Stan Winston Digital as an artist and then developed strong pipeline/programming skills at Sony Pictures Imageworks while working on Spiderman 3, I Am Legend and The Watchmen. Justin currently works as Senior Pipeline Developer on the award winning television series South Park, designing tools for Maya, Nuke, and general pipeline. His passion for live-action visual effects and film leads Justin to gain fundamental knowledge in all facets possible. His experience includes paint, roto, compositing, python and pipeline development. His work includes feature films such as Tropic Thunder, Commander & Chief, The Compass, Bride Wars, Mamma Mia, I Am Legend, Spiderman 3, The Watchmen, Fantastic Four and more.