Keeです。
C++でクロスプラットフォームGUIアプリを開発するためにQtを選んだのはいいものの、
QtWidgetsで開発するか、QtQuickで開発するかどっちにしようと迷っているあなたへ。
Contents
QtWidgets
QtWidgets では、OSベースのデザインのアプリを作ることができます。
メリットはC++だけで作ることかでき、uiを作る時も、Qtの専用デザイナーを利用して作ることができます。また古くからあるので、日本語でも英語でも多くの資料がのこっているので、
開発しやすいです。
デメリットはスタイルがOSの標準スタイルになってしまうところです。CSSを利用してデザインを変えることもできますが、最近のスマホアプリのようなモダンな風にはすることができません。
上はQt公式のサンプルアプリの画像です。
QtWidgetを利用して開発したアプリはこのように「設定」感が強くなります。
よってQtWidgetはデスクトップが基本で、編集アプリや、デスクトップアプリ、外部ソフトのアドオンなどで使うといいでしょう。
QtQuick
QtQuickはモダンなアプリを作ることができ、スマホアプリ作成に向いています。
GUI部分をQMLという独自の宣言型言語を利用し、ロジック部分をC++かJavaScriptを利用して開発します。
メリットはスマホアプリに向いたモダンなアプリを作れます。以下のような、ザ・かっこいいアプリを作れます。
GPUで描画されているために、OSに依存しません。
デメリットはQMLという言語も習得しないといけない点です。そこまで文法的に難しい言語ではありませんが、ある程度慣れが必要です。また、C++とQMLの連携が難しいためすぐにアプリを作りたい人には向いていません。
結局どっちか
以上のようにQtWidgetとQtQuickは全く一緒じゃありません。作りたいものによって変えるといいと思います。既存のソフトの拡張機能やシステム的なアプリはQtWidgets、スマホのタスクアプリや単純なゲームなどはQtQuickを使うといいでしょう。
しかし、Qtでの開発が初めての時はQtWidgetsを使うべきです。なぜなら、QtQuickでもQtWidgetsでもC++で使うヘッダファイルやクラスなどは使うため、QtQuickを使う前にQtWidgetsでQt自体に慣れておくべきだからです。
ではがんばりましょう。~Fin~
コメント