A boilerplate Qt Py* app that runs in dcc apps, py2, or py3.
Project description
pyvfx-boilerplate
A boilerplate for creating PyQt4/PySide and PyQt5/PySide2 applications running in Maya, Nuke, Blender, 3DS Max, Houdini, Unreal Engine or completely standalone.
Documentation
Version 3.x
- The entire boilerplate was re-written so it could be packaged and distributed with PyPi.
- Adding Blender, 3DS Max, Houdini, and Unreal Engine support.
For details, see CHANGELOG.md.
Noteworthy known issues
- Does not work with Nuke 10.0v1 on OS X: #7
- Maya palette glitchy in standalone mode with PySide/PyQt4 on OS X (disabled by default): #9
- Window will not stay on top of Nuke (OS X) without Qt.Tool or Qt.WindowStaysOnTopHint: #12
Installation
Easy way:
pip install pyvfx-boilerplate
Long way:
git clone https://github.com/fredrikaverpil/pyvfx-boilerplate.git
cd pyvfx-boilerplate
python setup.py sdist bdist_wheel
pip install dist/*
Example usage
Pip installs a program named pyvfx-boilerplate
as an example Run as standalone:
(you may need to additionally install PyQt4, PyQt5, PySide or PySide2 for standalone to work depending on your system configuration)
pyvfx-boilerplate
Run in script editor of Maya or Nuke:
import sys
sys.path.append('/path/to/pyvfx-boilerplate')
from pyvfx_boilerplate import boilerplate_ui
bpr = boilerplate_ui.BoilerplateRunner()
bpr.run_main()
Modifying the boilerplate
- See inheritance example above
Development guidelines
Since the boilerplate relies on Qt.py
, you should design your application as if you were designing it for PyQt5/PySide2. This means creating widgets using QtWidgets
rather than QtGui
. The Qt.py
module takes care of the remapping and makes for compatibility with PyQt4/PySide. Read more over at the Qt.py
repository.
Tip: when you cannot rely on Qt.py
, create an issue (probably over at Qt.py
) and/or detect which binding is being used and write some custom code:
from Qt import QtCompat
if QtCompat.__binding__ in ('PyQt4', 'PySide'):
# Do something if PyQt4 or PySide is used
if QtCompat__binding.startswith('PySide'):
# Do something if PySide or PySide2 is used
if QtCompat__binding == 'PySide2':
# Do something if PySide2 is used
Issues
Something wrong, have a question or wish to file a feature request?
Open up an issue here!
Contribute
If you wish to contribute, pull requests are more than welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pyvfx_boilerplate-3.2.4-py2.py3-none-any.whl
.
File metadata
- Download URL: pyvfx_boilerplate-3.2.4-py2.py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28e0b29842f626cf00c371b7abcacd91ad570dec186e166746231074dde6016f |
|
MD5 | 8d89157d1a295068c52f44cdfa6bfeea |
|
BLAKE2b-256 | d6d245a3a0a1697c2940ef3cc14e2187dd23b48a958a63dfb5df10f2c48bded3 |