A compatibility library for PyQt4, PyQt5 and PySide
A compatibility library for PyQt4, PyQt5 and PySide.
Warning: This is a pre-alpha version that should not be used in production. Backward compatibility is not guaranteed at this point.
This package requires Python 2.7 or 3.2-3.5 with six and one of the following backends: PyQt4, PySide, PyQt5.
It can be installed with,
pip install git+https://github.com/rth/SiQt.git
Assuming you have GUI script my_pyqt4_gui.py written with PyQt4 (or any other backend), you can attempt to run it with PySide (or any other backend) using,
SIQT_BACKEND_FORCE='PySide' python -m SiQt my_pyqt4_gui.py
Note that the compatibility hooks are still being actively developped and this may fail due to API differences
SiQt provides a layer of abstraction to work with the existing Python Qt libraries.
The SiQt package will redirect imports to the active PyQt/PySide backend:
import SiQt SiQt.use('PyQt4') from SiQt import QtCore, Qt # or any other module that would be imported from PyQt4
2. Import interception
With the force=True option, imports of PyQt4, PyQt5, PySide can be intercepted to load SiQt instead, which itself redirects to the active PyQt/PySide backend:
import SiQt SiQt.use('PyQt5', force=True) import PyQt4 import PyQt4.QtCore print(PyQt4.__name__) # SiQt print(SiQt.backend) # PyQt5 print(PyQt4.QtCore.QT_VERSION_STR) # 5.5.1
3. Compatibility layer
By default, SiQt.use is called with the mode='compatible' argument, which attempts to compensate the differences in the API between backends (in developpement). Alternatively, one can set mode='strict' to avoid this behaviour.
Command line use
Most of the SiQt functionality is accessible through command line, where the SiQt.use arguments can be passed as environment variables:
- SIQT_BACKEND='name' is equivalent to SiQt.use('name', force=False)
- SIQT_BACKEND_FORCE='name' is equivalent to SiQt.use('name', force=True)
- SIQT_MODE='name' is equivalent to SiQt.use(..., mode='mode')
SiQt can be enabled on any script without changing its source code with,
SIQT_BACKEND_FORCE='name' python -m SiQt original_script.py
The test suite can be run with,
python -c "from SiQt.siqt import tests; tests.run()"
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size SiQt-0.2.0a0-py2.py3-none-any.whl (17.8 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
|Filename, size SiQt-0.2.0a0.tar.gz (15.4 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for SiQt-0.2.0a0-py2.py3-none-any.whl