lpozo | 2020-05-07 20:08:51 UTC | #1
https://www.pythonguis.com/blog/pyqt5-vs-pyside2/
Great post Martin! I think you can also use the EAFP approach, and do something like this:
try:
# PyQt5
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.QtCore import pyqtSignal as Signal, pyqtSlot as Slot
except ImportError:
# PySide2
from PySide2 import QtGui, QtWidgets, QtCore
from PySide2.QtCore import Signal, Slot
In the qt.py
file.
What do you think?
martin | 2020-05-07 20:10:53 UTC | #2
Thanks for the comment and good point! This works great for applications where you want to support it running on either binding.
Just a warning though, it might not work so great if you're writing a library where your library is imported by an app using PySide2 but PyQt5 is available in site packages. Bit of an edge case, but exactly the weird things that happen when you write and distribute a library :)
Create GUI Applications with Python & Qt5 by Martin Fitzpatrick — (PyQt5 Edition) The hands-on guide to making apps with Python — Over 10,000 copies sold!
Create GUI Applications with Python & Qt6 by Martin Fitzpatrick — (PySide6 Edition) The hands-on guide to making apps with Python — Over 10,000 copies sold!