Python GUI Frontend Options Comparison

Python GUI Frontend Options Comparison

2021-01-14. Category & Tags: Python, GUI, Desktop, Windows, Linux, Cross-Platfrom

Mainly for the (cross-platform) Python GUI frontend options.

  • CEF (Chromium Embedded Framework). Pro: can use the same way of MVC thinking (modern html5); build-in chromium browser. Con: someone said it may need a little c++.
  • PyQt (v5). Pro: big community, good doc (for c++). Con: c++ way of thinking, just the language is py (the official GUI tutorial lacks GUI screenshots!); pay for commercial usage; still often needs c++.
  • Tkinter. Pro: build-in w/ py, big community. Con: //TODO.
  • electron / nwjs (bad word of mouth) /javafx / swiftui / flutter : Pro: quick to develop. Con: using node.js, too slow to run and to learn. // though it is possible for experts to make VSCode using electron.
  • wxPython: Pro: small-to-middle-size community… Con: too new, few people.

ref: zhihu & youtube

See also : a demo project combining some good parts (though sunny does not agree with the wording of explanation).
(wxPython - Windowing
CEF Python - Portable browser
Flask - Local web server
Gevent - Launches Flask
Bootstrap - Web UI
xmlhttprequest - Communication with Flask to update UI)