PythonQt is a dynamic Python binding for Qt. It offers an easy way to embed the Python scripting language into your Qt applications.
API documentation is available at: https://mevislab.github.io/pythonqt
PythonQt is distributed under the LGPL 2.1
license.
The build system of PythonQt makes use of a patched version of the LGPL'ed QtScript
generator, located in the generator
directory.
See the LICENSE.LGPL
file in the generator subdirectory for details.
Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
See https://code.qt.io/cgit/qt-labs/qtscriptgenerator.git for the original project.
The PythonQt wrappers generated by the generator are distributed under the LGPL
as well.
The generated wrappers are pre-generated and checked-in, so you only need to build and run the generator when you want to build additional wrappers or you want to upgrade/downgrade to another Qt version, but this requires updating the typesystems as well.
Building PythonQt requires a couple of steps. Follow these instructions in order to get a correctly built PythonQt runtime and Qt bindings.
It is recommended to build the Qt bindings yourself instead of using the pregenerated ones.
This ensures the bindings are compatible with your Qt version.
Do not build PythonQt.pro
directly because it will only use the pregenerated bindings!
First, you need to set a couple of environment variables, which depend on your Python and Qt installation.
PYTHON_VERSION
Set the version of your Python interpreter. The syntax is <major>.<minor>
, e.g., 3.10
.
PYTHON_PATH
This is the absolute path to the root directory of your Python installation.
PYTHON_LIB
The absolute path to the libs
directory in your python installation $PYTHON_PATH/libs
.
PYTHON_DIR
The PYTHON_DIR
is required for non-Windows installations to find the python-config
executable.
This should have the same value as PYTHON_PATH
.
QTDIR
The absolute path to the root directory of your Qt installation.
cd into the generator
directory
Run qmake on generator.pro
qmake CONFIG+=Release generator.pro
Make the generator
Use nmake
for MSVC (Visual Studio; make sure to have the environment variables set for Visual Studio beforehand). Otherwise, use make
.
Generate the bindings
We use the generator executable from step 3 to generate the bindings.
The location of the generator executable can vary depending on your platform (the subdirectory is named after the current configuration, e.g., release
).
On Windows, the generator is named pythonqt_generator.exe
; on all other platforms, it is named pythonqt_generator
.
<generator-executable> qtscript_masterinclude.h build_all.txt
Next, we need the PythonQt runtime.
cd into the src
directory
qmake src.pro
qmake CONFIG+=Release src.pro
Make the runtime
Use nmake
for MSVC (Visual Studio; make sure to have the environment variables set for Visual Studio beforehand). Otherwise, use make
.
As a last step, we need to build the extensions.
cd into extensions
qmake src.pro
qmake CONFIG+=Release extensions.pro
Make the extensions
Use nmake
for MSVC (Visual Studio; make sure to have the environment variables set for Visual Studio beforehand). Otherwise, use make
.
After all these steps, you should now have a fully working PythonQt runtime and Qt bindings for your Python/Qt installation 🎉.
It is possible to build PythonQt with MinGW on Windows instead of using MSVC.