Qtは、主にC++開発者がユーザーインターフェースを作成するのに使うフレームワークである。多くのプラットフォームで使うことができるが、最も広く知られているのは、電話用の Nokiaの Symbian OSでの役割である。元々1994年に Trolltechによって作られ、Nokiaがその技術を2006年に買った。彼らが Symbian製品ラインを止めることを決定した時に、Nokiaは現在の所有者であるDigiaにQtを売却した。現在、 C#, Java, Python, PHP, Rubyを含んだ18言語で、Qtバインディングが利用できる。
Qt 5での大きな変更は、 Qt Quick 2の導入である。 Qt Quickモジュールは、ベースライブラリで、その上にQMLベースのアプリが作成される。 Qt Quickに入る前にQML自身を説明する必要がある。
QMLは、宣言的な言語でCSSに似ている。それは、 XAML や AXMLと同じ役割を果たすが、いくつか追加されている利点がある。例えば、JavaScriptの式は、プロパティバインディングに直接使用できる。
XAMLのように、QMLは、ビジュアルプロパティをオーバーライドできる状態マネージャの概念を持っている。各状態には、名前と適用されるスタイルとして機能する PropertyChangesセクションがある。コントロール自身の状態はプロパティとして見える。アニメーションもサポートされている。アニメーションは、繋ぐことができ、値を調整する時に簡単にするような通常のフィーチャもサポートしている。
Qt Quick 2 は幾つもの新フィーチャを提供している。その中には、
- Canvas は、HTML5 Canvas APIに似たAPIを幾つかの追加のフィーチャと共に提供している。
- シェーダー効果は、GLSLシェーダープログラムが直接QMLコードに統合でき、アイテムやイメージに適用できる。
- 様々な2Dパーティクルシステムを作れるパーティクル効果。
- スプライトは、2Dグラフィカルオブジェクトをアニメーションするのに、パーティクルシステムのソースとして使うことができる。
- オフラインストレージは、HTML5 Web Database API で、 Qt Quickアプリでデータを保存するためのJavaScript API 準拠である。
- Windowはトップレベルのウィンドウと画面解像度と他の詳細情報にアクセスするための Screenタイプを提供する。
- 最適なパフォーマンスを得るために、OpenGLをベースにした新しいレンダリングアーキテクチャ。
ウェブページは、Qt WebKitを使ってQtアプリケーション内部に組み込める。名前が示すように、これは人気のある Webkitプロジェクトをベースにしており、「CSSフィルター、アニメーション、ビデオ、Canvas とWebGL、CanvasサポートとHTMLビデオ」などのHTML 5 フィーチャをサポートしている。