'Traditional Qt' or 'Qt Quick' for a desktop program?

Edwin Yip picture Edwin Yip · Mar 31, 2011 · Viewed 7.7k times · Source

Nokia has just introduced Qt Quick (build UI declaratively like using CSS/HTML) in the recent beta versions of Qt, check this example page, it can build fancy and modern UI, very cool!

On the opposite, the UI developed by 'traditional Qt' seems to be less fancy (I might be wrong, see disclaimer below).

So my question is, would you use 'Traditional Qt' or 'Qt Quick' for a new desktop program? Why?

My initial thoughts:

'Traditional Qt':

Pros:

  • The overall technologies used be less, thus simpler, if you use PySide, you only code in Python, don't have to mess with the CSS/JS-like things in Qt Quick;

  • It's maturer.

    Cons:

  • Building fancy UI seems to be more difficult?

'Qt Quick':

Pros and cons: the other way around.

Edit: Qt Quick has a downside, correct me if I'm wrong, you can't design Qt Quick UI in a WYSIWYG way, right?

Disclaimer: I'm new to Qt, PySide and Python, just recently has started evaluating using these tech to build desktop programs.

Answer

Dr Deo picture Dr Deo · Mar 31, 2011

ave been messing up with qml for my desktop and i personally found this:

  • its easier to create animations than in traditional qt/c++/pyqt (i loved the animations :)
  • I haven't looked through all examples but the code size of qml apps looks smaller than equivalent apps in c++

Problems i have found with qml

  • has poor qml design support- at the moment custom elements dont show up in qml designer.This is a big pain coz ideally i should get a designer to create my ui and i concentrate on the code. Their qml designer still needs some work
  • You are expected to learn javascript since its the "recommended" way of scripting in qt. Javascript is NOT easy as you may expect eg learning python took me a few hours but javascript looks superficially similar to c but some of its concepts are different. Also i wonder if i can protect intellectual property in an app written i just javascript and qml.(correct me if am wrong)
  • native widgets are not available in qml eg it just offers rectangles, etc which you combine to form your own widgets.

This has not stopped me from playing with qml and as it matures, i shall adopt a wait and see attitude. Currently am using qml for part of my ui and c++ for the backend.