Title Image

PySide2 for Maya (Vol. 3)

Maya (2017+)
6 hours 7 minutes
Chris Zurbrigg

Become a Patron!


This series continues to explore advanced Qt functionality and Maya integration, with a focus on applying this knowledge to create robust, user-friendly PySide2 UIs in Maya.

Streaming: This course is available to Total Access subscribers on Patreon

Download: This course is available for purchase on Gumroad

Course Outline

26 Videos (6 hours 7 minutes)

00 - Introduction

A high level overview of what is upcoming in the third volume of the PySide2 for Maya series.

01 - Docking (Part 1)

An overview of docking and workspaces in Maya -- including a brief look at the workspaceControl command and workspace config files.

02 - Docking (Part 2)

A detailed look at the mayaMixin module and using the MayaQWidgetDockableMixin class to create dockable PySide2 UIs.

03 - Docking (Part 3)

Building on the MayaQWidgetDockableMixin example from the previous lesson, additional functionality is added to ensure the dockable UI's state persists between Maya sessions.

04 - Docking (Part 4)

Over the next few lessons, an alternative solution to the mixinModule is implemented. These lessons provide a detailed look at the workspaceControl command and deeper insight into docking and workspaces.

05 - Docking (Part 5)

With the WorkspaceControl class complete, this lesson demonstrates how to take existing examples from the PySide2 for Maya series and convert them to dockable UIs using this class.

06 - Docking (Part 6)

Continuing on from the previous lesson, functionality is added to SampleUI that allows the UI's state to persist between Maya sessions. As a bonus, this code can be used to create shelf buttons and menu items to launch the UI.

07 - Docking (Part 7)

Extra tips for working with workspace controls. Additionally, example code is provided that takes a pipeline approach to creating reusable dockable UI components.

08 - Event Overview

Events are a fundamental part of Qt and it is important for anyone developing Qt-based tools to understand what events are, the different types of events and when they are generated, and how to handle events in an application.

09 - Event Handling (Part 1)

To further illustrate event handling, the next few lessons will demonstrate how to extend the most common event handling methods provided by the QWidget class.

10 - Event Handling (Part 2)

Continuing on from the previous lesson, this video will dig into the methods available for handling different types of mouse events.

11 - Event Handling (Part 3)

Wrapping up the section on event handling, this lesson includes examples for a number of less common, but still very useful, event handling methods.

12 - Event Filtering

A look at event filtering in Qt. Event filters provide a mechanism for intercepting events destined for other Qt objects/widgets.

13 - Native Maya Widgets (Part 1)

A unique look at the Qt widgets that make up Maya's main UI (e.g. Outliner, TimeSlider, Channel Box, etc..) and the different methods available for identifying and working with these widgets.

14 - Native Maya Widgets (Part 2)

Building on the previous lesson, this video demonstrates how to track the current mouse position and identify the UI component at that position.

15 - Drag and Drop (Part 1)

An introduction to drag and drop in Qt and an example illustrating how to extend existing drag and drop support in a native Qt widget.

16 - Drag and Drop (Part 2)

Building on the previous example, a file explorer is added to the main window that allows files to be opened by dragging items from the explorer view and dropping them on the text editor.

17 - Drag and Drop (Part 3)

Not all Qt widgets have built-in drag and drop support, leaving it's implementation to the developer. As such, this lesson details the steps required to add drag and drop support (w/custom mime types) to any QWidget.

18 - Drag and Drop (Part 4)

A detailed look at the drag and drop helper methods provided by the QAbstractItemView base class and how they can be used to simplify the code from the previous example.

19 - Custom Maya Overlays (Part 1)

A detailed look at creating overlay widgets in Maya. These widgets can be used to add new functionality to existing UI elements (e.g. timeline, outliner) where no source code is available for extending the UI class.

20 - Custom Maya Overlays (Part 2)

In this lesson, an overlay widget is added to Maya's main timeline allowing custom data (keys, markers, text) to be displayed on the timeline.

21 - Custom Maya Overlays (Part 3)

Building on the previous example, functionality is added to display custom frames, at specific times, on the timeline. Additionally, support for adding and removing frames is implemented.

22 - Custom Maya Overlays (Part 4)

Wrapping up the TimelineOverlay example, a context menu is added that can (optionally) override Maya's main timeline context menu.

23 - Custom Maya Overlays (Part 5)

A look at one of the biggest limitations to using overlay widgets on Maya's main UI.

24 - Pop-Up Windows (Part 1)

An overview of pop-up windows in Qt -- how to create, show and position them in a UI.

25 - Pop-Up Windows (Part 2)

An alternative approach to displaying pop-up windows and some additional pop-up tips.

Additional Videos Coming Soon...

Related Courses