GuiToolkitChoice

< Back to Brainstorm page

SUMMARY: we've starting to reach the limits with the current GUI toolkit of choice. While GTK serves its purpose well, it does not perform well in terms of multiple device support and a modern UI feel. We're investigating the best choice to use for the next Qreator release.

Comparison table

The comparison is based on the following toolkit versions:

  • Gtk -- 3.0 via gobject introspection

  • Qt + QML -- 4.8.3 via PySide

  • Ubuntu toolkit -- pure QML

  • HTML5 / CSS3 via webkit

  • kivy -- 1.4.2

Criterion

Gtk

Qt + QML

Ubuntu toolkit

HTML5 / CSS3

kivy

Fully documented

(X) [1]

(./)

(./)

(./)

(./)

Desktop look and feel

(./)

(./) / (X) [2]

(X) [5]

(X) [3]

(X)

Unity Integration

(./)

(./)

(X) [5]

(X) just via python

(X) just via python

Supports Python 3

(./)

(./)

---

?

(X)

Pythonic API

(X)

(X)

---

?

(./)

Maintainable

?

?

?

?

?

I18n support

?

?

(./)

?

(./) via python

Animation of graphical content

(./) in clutter

(./) in QML

(./)

(./)

(./)

Animation of widgets

(X)

(./)

(./)

(./)

(./)

Multitouch support

(X) / (./) since 3.4

(./)

(./)

(./) [4]

(./)

Notes

  • [1] -- Only the C version is fully documented. The python bindings have to be guessed. A very good but also incomplete readthedocs tutorial is available.

  • [2] -- Only QtWidgets share the look'n'feel of Ubuntu. QML does not.

  • [3] -- Some widgets (forms) like buttons are rendered by most browsers in a conforming way.

  • [4] -- https://developer.mozilla.org/en-US/docs/DOM/Touch_events

  • [5] -- not yet, but is planned

Detailed functionality requirements

Since the toolkit choice has been made: Ubuntu toolkit (QML), there are a couple of details to work out. The following is a list of item we have to tackle in order to recreate the current status in the new toolkit.

Qreator general UI

  • Unity integration: notifications

  • Unity integration: HUD

  • System integration: clipboard

  • System integration: drag & drop into different toolkits

  • System integration: printing

  • System integration: file I/O (save image to file)

  • GUI elements: printer dialog

Wifi Datatype

  • System integration: network-manager (dbus) interface

GeoLocation

  • System integration: location / geoclue (dbus) interface

  • GUI elements: map

SMS & Call

  • System integration: contacts

Software Center

  • System integration: software-center db

  • System integration: file I/O (load icons)

  • System integration: threading or several processes + IPC

  • GUI elements: autocompletion popup

MECARD / VCard

  • System integration: contacts

Text

URL

Qreator/GetInvolved/Brainstorm/GuiToolkitChoice (last edited 2013-05-09 09:25:03 by dpm)