User Tools

Site Tools


misc:gui_frameworks_for_linux

This is an old revision of the document!


GUI frameworks for Linux

Python-centric

PyGObject

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?

  • Event handling is simple event→callback; no “listener” or signal/slot concepts.
  • Event names are specified as strings.

Cons

  • 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?
  • Not supported well at all on other operating systems.

Thoughts

  • Workflow (UI layout to code) is pleasant.
  • Perhaps best option right now for Linux-centric apps.

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)

Thoughts

  • Perhaps best option for universal proprietary apps with no budget.

Notes

  • 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)

PyQt

Pros

  • 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 (Commercial license is ~$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 repos1) (which you want because it moves so fast).

Thoughts

  • Perhaps best option for universal FOSS apps and proprietary apps that have a $500 tooling budget.

Kivy

Interesting, but not really a desktop application framework.

Pros

  • MIT license.

libavg

Needs research

Pros

  • LGPL

PyGui

Wrappers around desktop toolkits. Wrappers PyGTK right now, PyGObject in the future.

1)
qttools5-dev-tools will get standalone Qt Designer and other stuff.
misc/gui_frameworks_for_linux.1462909219.txt.gz · Last modified: 2016/05/10 19:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki