Skip to main content

Qt window class for designing tools to be compatible between multiple VFX programs.

Project description

VFXWindow

Qt Window class for designing tools to be compatible between multiple VFX programs.

The main purpose of the class is to integrate into the program UI, but it also contains helpful features such as safely dealing with callbacks and automatically saving the window position.

The intended usage is to make your window class inherit VFXWindow - which is an instance of QMainWindow. By calling cls.show(), it will launch the correct window type based on what program is loaded, and what settings were previously saved.

This is perfectly stable, but there is still plenty that needs improvement. Eventually I plan to add support for Unreal, Fusion, Blender, etc.

Basic Example:

class MyWindow(VFXWindow):
    WindowID = 'unique_window_id'
    WindowName = 'My Window'

    def __init__(self, parent=None, **kwargs):
        super(MyWindow, self).__init__(parent, **kwargs)
        # Setup window here

        # Setup callbacks, but wait until the program is ready
        self.deferred(self.newScene)

    def newScene(self, *args):
        """Example: Delete and reapply callbacks after loading a new scene."""
        self.removeCallbacks('sceneNewCallbacks')
        if self.maya:
            self.addCallbackScene('kAfterNew', self.newScene, group='sceneNewCallbacks')
        elif self.nuke:
            self.addCallbackOnCreate(self.newScene, nodeClass='Root', group='sceneNewCallbacks')

if __name__ == '__main__':
    MyWindow.show()

Compatibility

  • Maya (2011-2016, tested lightly on 2016) - standard, docked (pymel.core.dockControl)
  • Maya (2017+, tested on 2017-2019) - standard, docked (pymel.core.workspaceControl), dialog (pymel.core.layoutDialog)
  • Nuke (tested on 9 and 10) - standard, docked (nukescripts.panels)
  • Houdini (tested on 16) - standard
  • Standalone (Qt4, Qt5) - standard

Generic Features

  • Automatically save/restore window position
  • Move window to screen if out of bounds (windows only)
  • Keep track of callbacks to remove groups if required, and clean up on window close
  • Keep track of signals to remove groups if required
  • Display a popup message that forces control
  • Set palette to that of another program
  • Auto close if opening a duplicate window
  • Close down all windows at once

Maya Features

  • Dock window using workspaceControl
  • Dialog window using layoutDialog
  • Save/restore position of workspaceControl window (floating+docked)
  • Easy access to callbacks

Nuke Features

  • Dock window as a panel
  • Save/restore location of panel (docked only)

Special Thanks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vfxwindow-1.0.0.tar.gz (44.3 kB view details)

Uploaded Source

File details

Details for the file vfxwindow-1.0.0.tar.gz.

File metadata

  • Download URL: vfxwindow-1.0.0.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for vfxwindow-1.0.0.tar.gz
Algorithm Hash digest
SHA256 031bada8dcf8c3a84ff94dbc979590bc59c679068252fb61e6d221170a3883c8
MD5 b3f33b2ef6a0a4b345b814a8d95082ed
BLAKE2b-256 07d9c0666e0380fb6b88cb23782653301948dfaf69ba3d09680695759b441a65

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page