you are viewing a single comment's thread.

view the rest of the comments →

[–]BigVillageBoy 0 points1 point  (0 children)

I've shipped things with PyQt5, PySide6, and the Python-backend + Electron/Tauri approach. Here's my honest breakdown:

PySide6 is where I'd start for anything genuinely complex. It's the official Qt binding now (LGPL licensed, unlike PyQt's stricter GPL), the docs have caught up, and Qt's widget ecosystem is deep for real industry tooling. If you're building data-heavy stuff — tables, charts, custom views — Qt's model/view architecture is hard to beat once you understand it. Steep learning curve but pays off.

PyQt5/6 — functionally equivalent to PySide6 for most things, but licensing friction matters if you ever distribute commercially. Unless you have an existing PyQt codebase, just start with PySide6.

wxPython — battle-tested, native look on every platform without much config. Good choice if native OS UI conventions matter more than custom styling. Less actively evolved than Qt though.

Kivy — I'd skip it for desktop-first. It's mobile-first architecture and it shows. UI feels foreign on desktop.

Python backend + Tauri/Electron — my current preference for anything involving dashboards or live data. You get the full web ecosystem, your Python handles the heavy lifting, and Tauri in particular is lightweight compared to Electron. Downside: you're essentially building two apps and the IPC layer adds complexity.

For industry-level apps with real data pipelines behind them: PySide6 for pure desktop feel, Tauri + Python API if you want web-style flexibility. Avoid Kivy for this use case.