Embracing Qt for
Python
Nicki Schumacher, Sr. Director Key Accounts, The Qt Company
Dr. Cristián Maureira-Fredes, R&D Manager, The Qt Company
Paul Miller, Principal Engineer, Silhouette FX
July 16, 2020
› Dr. Cristián Maureira-Fredes,
Manager Research & Development ,The Qt
Company
› Cristián has been a Python enthusiast for more
than 10 years, and due to his academic
background he has been using it in different
topics like Image Processing, Artificial
Intelligence, Robotics, Data Science, and
Astrophysics. Currently he is a Manager of
Research & Development, Team lead for the
QtCore, QML and Qt for Python teams, and
continues as a Software Engineer at the Qt
Company working on the Qt for Python project.
Embracing Python
Dr. Cristián Maureira-Fredes
PANELIST
Built with Qt Customer Case: SilhouettteFX
Paul Miller
16 July 2020 © The Qt Company3
PANELIST
› Paul Miller, Principal Engineer, Silhouette
FX (Acquired by Boris FX)
› Paul Miller has developed widely-used
applications for the VFX industry for almost
30 years. In 2019 he was awarded an Emmy
and Academy Award for his design and
development of the Silhouette rotoscoping,
digital paint, and compositing system. His
company, Silhouette FX, was recently
acquired by Boris FX.
The Qt Company 2020 | @cmaureir
EmbracingEmbracing
FromFrom PrototypesPrototypes
toto ₕₕyybbᵣᵢᵣᵢdd ApplicationsApplications
Dr. Cristián Maureira-Fredes
The Qt Company 2020 | @cmaureir
Setup
Installation
Building from source
PySide
Widget based app (.ui, .qrc)
QML interaction
Other Python modules
Shiboken
C++ module to Python
C++/Python application
Outline 📖Outline 📖
The Qt Company 2020 | @cmaureir
before we start
What's the deal withWhat's the deal with PythonPython??
🤔
The Qt Company 2020 | @cmaureir
WebinarsWebinars && Conferences 💻Conferences 💻
Creating user interfaces with Qt for Python
Develop your first Qt for Python Application
Python and C++ interoperability with Shiboken
and many others!
doc.qt.io/qtforpython/videos.html
The Qt Company 2020 | @cmaureir
Documentation 📚Documentation 📚
General:
Shiboken:
Resources:
In progress
Video tutorials (Build, Contributing, etc)
Qt Creator example gallery
More tutorials and examples!
doc.qt.io/qtforpython
doc.qt.io/qtforpython/shiboken2
resources.qt.io
The Qt Company 2020 | @cmaureir
The Qt Company 2020 | @cmaureir
Binding generation ⏳Binding generation ⏳
The Qt Company 2020 | @cmaureir
Setup 🔨Setup 🔨
The Qt Company 2020 | @cmaureir
InstallingInstalling PySidePySide
What does that install?
pip install pyside2
▪PySide2 ✅
├── Qt modules ✅
├── pyside2-designer ✅
├── pyside2-rcc ✅
└── pyside2-uic ✅
▪Shiboken2 (module) ✅
└── shiboken2 ✅
▪Shiboken2_Generator (exe) ❌
└── shiboken2 ❌
The Qt Company 2020 | @cmaureir
InstallingInstalling Shiboken GeneratorShiboken Generator
the simple waythe simple way
But one needs to:
Set CLANG_INSTALL_DIR to the libclang directory
Add to PATH a Qt bin path with the same version
Add to LD_LIBRARY_PATH the Qt lib path with the same version
pip install 
--index-url=http://download.qt.io/official_releases/QtForPython/ 
--trusted-host download.qt.io 
shiboken2 pyside2 shiboken2_generator
The Qt Company 2020 | @cmaureir
InstallingInstalling Shiboken GeneratorShiboken Generator
the hard way?the hard way?
Set CLANG_INSTALL_DIR to the libclang directory
python setup.py install
# there are many other options!
doc.qt.io/qtforpython/gettingstarted.html
The Qt Company 2020 | @cmaureir
before jumping into the examples
WhichWhich IDEIDE should Ishould I useuse??
The Qt Company 2020 | @cmaureir
IDEs support 🖥IDEs support 🖥
The Qt Company 2020 | @cmaureir
Let's look at someLet's look at some codecode 💾💾https://maureira.xyz/qtvts2020/code
The Qt Company 2020 | @cmaureir
ResourcesResources
Technical Vision 🔭
Documentation 📚
Blogs, Webinars, Conferences, and more 🎉
qt.io/blog/2019/08/19/technical-vision-qt-python
doc.qt.io/qtforpython
resources.qt.io
The Qt Company 2020 | @cmaureir
What's our current state?What's our current state?
Released M2M Protocols wheels for commercial
users .
Got rid of a set of nasty bugs related to threading
🐞Catching up with Qt6 💪
The Qt Company 2020 | @cmaureir
What's next?What's next?
Currently in active development
Improvements to the documentation 📚
A campaign to add more examples started 🤖
Tooling to improve our lives 🔧Continue extending our commercial offering 🥳
The Qt Company 2020 | @cmaureir
but most importantly...
What doWhat do youyou need?need?
we are community driven.
🌟bugreports.qt.io
The Qt Company 2020 | @cmaureir
Q&A
💬 Let's talk!💬 Let's talk!
IRC
#qt-pyside on Freenode
Matrix
#qt-pyside:matrix.org
Telegram
Gitter
t.me/qtforpython
gitter.im/PySide/pyside2
Scripting Silhouette
Python for VFX with Qt for Python
Boris FX
Applications and plugins for VFX
Most written at least in part with
Qt & Python
Silhouette
Industry standard rotoscoping and
paint since 2005
Hundreds of feature films and
television shows
Stereo conversion of feature film
Academy Award, Emmy recipient
Highly extensible and customizable
using Python
Silhouette and Qt
Widgets-based desktop
application
Embedded Python interpreter
Built-in Python console
Built-in script editor
PySide2
Demo
Extending Silhouette with Qt
for Python
Learn more - Embracing Qt for Python
16 July 2020 © The Qt Company1
› Try Qt: https://www.qt.io/download
› Qt for Python: https://www.qt.io/qt-for-python
› Qt for Python Resources: https://resources.qt.io/qt-for-python-2
› Technical Vision: https://www.qt.io/blog/2019/08/19/technical-
vision-qt-python
› Documentation: https://doc.qt.io/qtforpython/
› Blogs, Webinars, Conferences and more ✨: https://resources.qt.io/
› Contact us: https://www.qt.io/contact-us
› IRC: #qt-pyside on Freednode
› Matrix: #qt-pyside:matrix.org
› Telegram: t.me/qtforpython
› Gitter: gitter.im/PySide/pyside2
SIGGRAPH
2020
AUG 25-27
Book a meeting
https://www.qt.io/events/siggraph-
2020-1586987037
Thank you
info@qt.io
https://www.qt.io/contact-us

Embracing Qt for Python

  • 1.
    Embracing Qt for Python NickiSchumacher, Sr. Director Key Accounts, The Qt Company Dr. Cristián Maureira-Fredes, R&D Manager, The Qt Company Paul Miller, Principal Engineer, Silhouette FX July 16, 2020
  • 2.
    › Dr. CristiánMaureira-Fredes, Manager Research & Development ,The Qt Company › Cristián has been a Python enthusiast for more than 10 years, and due to his academic background he has been using it in different topics like Image Processing, Artificial Intelligence, Robotics, Data Science, and Astrophysics. Currently he is a Manager of Research & Development, Team lead for the QtCore, QML and Qt for Python teams, and continues as a Software Engineer at the Qt Company working on the Qt for Python project. Embracing Python Dr. Cristián Maureira-Fredes PANELIST
  • 3.
    Built with QtCustomer Case: SilhouettteFX Paul Miller 16 July 2020 © The Qt Company3 PANELIST › Paul Miller, Principal Engineer, Silhouette FX (Acquired by Boris FX) › Paul Miller has developed widely-used applications for the VFX industry for almost 30 years. In 2019 he was awarded an Emmy and Academy Award for his design and development of the Silhouette rotoscoping, digital paint, and compositing system. His company, Silhouette FX, was recently acquired by Boris FX.
  • 4.
    The Qt Company2020 | @cmaureir EmbracingEmbracing FromFrom PrototypesPrototypes toto ₕₕyybbᵣᵢᵣᵢdd ApplicationsApplications Dr. Cristián Maureira-Fredes
  • 5.
    The Qt Company2020 | @cmaureir Setup Installation Building from source PySide Widget based app (.ui, .qrc) QML interaction Other Python modules Shiboken C++ module to Python C++/Python application Outline 📖Outline 📖
  • 6.
    The Qt Company2020 | @cmaureir before we start What's the deal withWhat's the deal with PythonPython?? 🤔
  • 7.
    The Qt Company2020 | @cmaureir WebinarsWebinars && Conferences 💻Conferences 💻 Creating user interfaces with Qt for Python Develop your first Qt for Python Application Python and C++ interoperability with Shiboken and many others! doc.qt.io/qtforpython/videos.html
  • 8.
    The Qt Company2020 | @cmaureir Documentation 📚Documentation 📚 General: Shiboken: Resources: In progress Video tutorials (Build, Contributing, etc) Qt Creator example gallery More tutorials and examples! doc.qt.io/qtforpython doc.qt.io/qtforpython/shiboken2 resources.qt.io
  • 9.
    The Qt Company2020 | @cmaureir
  • 10.
    The Qt Company2020 | @cmaureir Binding generation ⏳Binding generation ⏳
  • 11.
    The Qt Company2020 | @cmaureir Setup 🔨Setup 🔨
  • 12.
    The Qt Company2020 | @cmaureir InstallingInstalling PySidePySide What does that install? pip install pyside2 ▪PySide2 ✅ ├── Qt modules ✅ ├── pyside2-designer ✅ ├── pyside2-rcc ✅ └── pyside2-uic ✅ ▪Shiboken2 (module) ✅ └── shiboken2 ✅ ▪Shiboken2_Generator (exe) ❌ └── shiboken2 ❌
  • 13.
    The Qt Company2020 | @cmaureir InstallingInstalling Shiboken GeneratorShiboken Generator the simple waythe simple way But one needs to: Set CLANG_INSTALL_DIR to the libclang directory Add to PATH a Qt bin path with the same version Add to LD_LIBRARY_PATH the Qt lib path with the same version pip install --index-url=http://download.qt.io/official_releases/QtForPython/ --trusted-host download.qt.io shiboken2 pyside2 shiboken2_generator
  • 14.
    The Qt Company2020 | @cmaureir InstallingInstalling Shiboken GeneratorShiboken Generator the hard way?the hard way? Set CLANG_INSTALL_DIR to the libclang directory python setup.py install # there are many other options! doc.qt.io/qtforpython/gettingstarted.html
  • 15.
    The Qt Company2020 | @cmaureir before jumping into the examples WhichWhich IDEIDE should Ishould I useuse??
  • 16.
    The Qt Company2020 | @cmaureir IDEs support 🖥IDEs support 🖥
  • 17.
    The Qt Company2020 | @cmaureir Let's look at someLet's look at some codecode 💾💾https://maureira.xyz/qtvts2020/code
  • 18.
    The Qt Company2020 | @cmaureir ResourcesResources Technical Vision 🔭 Documentation 📚 Blogs, Webinars, Conferences, and more 🎉 qt.io/blog/2019/08/19/technical-vision-qt-python doc.qt.io/qtforpython resources.qt.io
  • 19.
    The Qt Company2020 | @cmaureir What's our current state?What's our current state? Released M2M Protocols wheels for commercial users . Got rid of a set of nasty bugs related to threading 🐞Catching up with Qt6 💪
  • 20.
    The Qt Company2020 | @cmaureir What's next?What's next? Currently in active development Improvements to the documentation 📚 A campaign to add more examples started 🤖 Tooling to improve our lives 🔧Continue extending our commercial offering 🥳
  • 21.
    The Qt Company2020 | @cmaureir but most importantly... What doWhat do youyou need?need? we are community driven. 🌟bugreports.qt.io
  • 22.
    The Qt Company2020 | @cmaureir Q&A 💬 Let's talk!💬 Let's talk! IRC #qt-pyside on Freenode Matrix #qt-pyside:matrix.org Telegram Gitter t.me/qtforpython gitter.im/PySide/pyside2
  • 23.
    Scripting Silhouette Python forVFX with Qt for Python
  • 24.
    Boris FX Applications andplugins for VFX Most written at least in part with Qt & Python
  • 25.
    Silhouette Industry standard rotoscopingand paint since 2005 Hundreds of feature films and television shows Stereo conversion of feature film Academy Award, Emmy recipient Highly extensible and customizable using Python
  • 26.
    Silhouette and Qt Widgets-baseddesktop application Embedded Python interpreter Built-in Python console Built-in script editor PySide2
  • 27.
  • 28.
    Learn more -Embracing Qt for Python 16 July 2020 © The Qt Company1 › Try Qt: https://www.qt.io/download › Qt for Python: https://www.qt.io/qt-for-python › Qt for Python Resources: https://resources.qt.io/qt-for-python-2 › Technical Vision: https://www.qt.io/blog/2019/08/19/technical- vision-qt-python › Documentation: https://doc.qt.io/qtforpython/ › Blogs, Webinars, Conferences and more ✨: https://resources.qt.io/ › Contact us: https://www.qt.io/contact-us › IRC: #qt-pyside on Freednode › Matrix: #qt-pyside:matrix.org › Telegram: t.me/qtforpython › Gitter: gitter.im/PySide/pyside2 SIGGRAPH 2020 AUG 25-27 Book a meeting https://www.qt.io/events/siggraph- 2020-1586987037
  • 29.