qttools5-dev-tools
will get standalone Qt Designer and other stuff.misc:gui_frameworks_for_linux
This is an old revision of the document!
Table of Contents
GUI frameworks for Linux
Python-centric
PyGObject
Replacing PyGTK
Pros
- First-class Linux framework.
- LGPL
- Nice support for externally defined UIs.
- Nice UI builder.
- Potentially tons of GNOME stuff to leverage.
- Code seems grainy but otherwise understandable.
- Easy to install if using distro packages.
Neutral/undecided
- Event handling is simple event→callback; no “listener” or signal/slot concepts.
- Event names are specified as strings.
Cons
- Poor support on other operating systems.
- GTK3 is the future and it is built for GNOME. For other desktop environments, who knows how well it will work and what will be supported. Will a ton of GNOME dependencies eventually be required?
Thoughts
- Workflow (UI layout to code) is pleasant.
- Perhaps best option for Linux-centric apps—unless/until some GNOME heaviness/goofiness happens.
PyQt
Pros
- First class Linux framework.
- Excellent multiplatform support (except maybe non-GNOME GTK).
- Lots of components (including “we do it differently” DBUS, etc.)
- Used by Spyder and a lot of others.
Cons:
- GPL-only or commercial license is at ~$500. (PySide is LGPL, but there has been little development.)
- Qt code can be heavy, somewhat verbose.
- Possibly PITA to install if not using distro repos (which you want because it moves so fast).1)
Thoughts
- Perhaps best option for multi-platform FOSS apps and for proprietary apps that have a $500 tools budget.
wxPython (Phoenix)
Pros
- Liberal license.
- True multi-platform support (e.g., native icons, native order dialog buttons).
- ? install (suspect easy if distro repos are used)
Cons
- Second-class Linux framework.
- Awkward external UI builder (wxGlade is incomplete, wxFormBuilder requires building, wxSmith is integrated with Code::Blocks)
- wxFormBuilder generates .fbp files which are XML—but not really human readable.
- Tiny bit awkward external UI file export/import mechanism (no UI file format, export a class with GUI, in program subclass it to make your wired-up window.).
- Code seems awkward at times (perhaps it's only oddly named components)
Awkward points:
- In wxville, a Frame is a window, a Window is the mega-parent class, a Control is a widget.
- Method names are CamelCase (first capitalized).
- Events: self.Bind(event-type, handler, emitting-object)
Thoughts
- Perhaps best option for multi-platform proprietary apps that have zero budget.
Kivy
Interesting, but not really a desktop application framework. Good for touch interfaces.
Pros
- MIT license.
libavg
Needs research
Pros
- LGPL
PyGui
Is a wrapper around desktop toolkits. On Linux, wraps PyGTK right now, PyGObject in the future.
1)
on Debian,
misc/gui_frameworks_for_linux.1463856071.txt.gz · Last modified: 2016/05/21 18:41 by mithat