QtPy - Handles Qt5/Qt6 Automatically

40 views
Skip to first unread message

Thomas Passin

unread,
Oct 27, 2022, 12:40:01 AM10/27/22
to leo-editor
I just found QtPy, which perhaps would have been (or still may be) useful for Leo and Leo projects. From its Github page:

"QtPy is a small abstraction layer that lets you write applications using a single API call to either PyQt or PySide.

It provides support for PyQt5, PyQt6, PySide6, PySide2 using the Qt5 layout (where the QtGui module has been split into QtGui and QtWidgets).

Basically, you can write your code as if you were using PyQt or PySide directly, but import Qt modules from qtpy instead of PyQt5, PySide2, PyQt6 or PySide6.

Accordingly, when porting code between different Qt bindings (PyQt vs PySide) or Qt versions (Qt5 vs Qt6), QtPy makes this much more painless, and allows you to easily and incrementally transition between them. QtPy handles incompatibilities and differences between bindings or Qt versions for you while keeping your project running, so you can focus more on your own code and less on keeping track of supporting every Qt version and binding. Furthermore, when you do want to upgrade or support new bindings, it allows you to update your project module by module rather than all at once."

jkn

unread,
Oct 27, 2022, 4:53:14 AM10/27/22
to leo-editor

Edward K. Ream

unread,
Oct 27, 2022, 5:01:17 AM10/27/22
to leo-editor
On Wednesday, October 26, 2022 at 11:40:01 PM UTC-5 tbp1...@gmail.com wrote:

I just found QtPy, which perhaps would have been (or still may be) useful for Leo and Leo projects.

I've discussed this before. Probably several years ago.

Any abstraction layer introduces another dependency and potential bugs. Leo's present approach, though not perfect, is better, imo.

Edward

jkn

unread,
Oct 27, 2022, 5:08:17 AM10/27/22
to leo-editor
Yes, I don't disagree. I might enjoy taking a look for other projects though...

Thomas Passin

unread,
Oct 27, 2022, 8:35:36 AM10/27/22
to leo-editor
Here's the Github URL -


I'm not suggesting that Leo should change over to using it, just that it's another way to get the results that Leo does in terms of adapting to qt5/qt6.

Reply all
Reply to author
Forward
0 new messages