1. ホーム
  2. qt

qt qmlとqt quickの違いについて

2023-08-10 12:45:52

質問

QML、QtQuick 1.0、QtQuick 2.0と混乱しています。これらの違いは何ですか?

Qt5.1.1ベースのQtCreator2.8.1を使っています。デスクトッププログラムを開発したいのですが、どの技術を使えばよいのでしょうか。

どのように解決するのですか?

EDIT: より良い答えのために@TheBootrooを参照してください。

私の回答はOPに受け入れられましたが、私の回答を修正(あるいは削除)したいと思います。

私の回答は、2013年のQt 5.2に関する個人的な経験に基づいており、そのうちのいくつかは今日ではもう有効ではありません。

  • QML は Qt Meta Language または Qt Modelling Language で、ユーザー インターフェイス マークアップ言語です。
  • QtQuick (QtQuick 1.x と QtQuick 2.x の両方) はユーザーインターフェース中心のアプリケーションを設計するための宣言的な言語として QML を使用しています。

Qt 5.2 では、Qt Quick アプリケーションを構築する際に、そのアプリケーションが QtQuick 1.x か QtQuick 2.x かということが重要な問題となりました。これは、使用できるコンポーネントに影響するだけでなく、アプリケーションがどのようにレンダリングされるかを変えました。

2013 年に戻って。

  • QtQuick 1.x アプリケーションは、古い OS (Windows XP など) や古いハードウェア (OLPC など) をターゲットにしなければならない場合、しばしば選択されました。ボタンなどの QML UI コンポーネントは、OS にネイティブなコンポーネントによってレンダリングされるからです。しかし、これは UI コンポーネントの最小公倍数セットをターゲットにしていることを意味し、UI エクスペリエンスはプラットフォームごとに異なる可能性があります。

  • QtQuick 2.x アプリケーションは、より一貫したクロス プラットフォームの外観のために選択されましたが、プラットフォームが OpenGLES を十分に実装している必要があり、さもなければアプリケーションのロードに失敗する可能性がありました。これは、残念ながら、OpenGLES を実装した最新のコンピューターおよびデバイスのみにアプリケーションを制限していました。

私が最初の回答を書いたとき、これは、いくつかのシナリオで QtQuick 2.x よりも QtQuick 1.x を推奨することにつながりました。

しかし、それ以来、Qt 5+ではWindows上でANGLEをターゲットにすることができるようになりました。これは、より良いドライバーサポートを持つDirect3Dに呼び出しを変換することによって、Windowsデスクトップに高性能なOpenGL互換性をもたらすものです。