GuiToolkitChoice
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 |
|
|
|
|
|
Desktop look and feel |
|
/ [2] |
|
||
Unity Integration |
|
|
just via python |
just via python |
|
Supports Python 3 |
|
|
--- |
? |
|
Pythonic API |
|
|
--- |
? |
|
Maintainable |
? |
? |
? |
? |
? |
I18n support |
? |
? |
|
? |
via python |
Animation of graphical content |
in clutter |
in QML |
|
|
|
Animation of widgets |
|
|
|
|
|
Multitouch support |
/ since 3.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)