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/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, qttools5-dev-tools will get standalone Qt Designer and other stuff.
misc/gui_frameworks_for_linux.1462910209.txt.gz · Last modified: 2016/05/10 19:56 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki