50

QMLの使用はQtで非常に新しいことを知っており、QtDesignerまたはQMLを使用してアプリケーションを設計する必要があるかどうか疑問に思っていました。私はMVCパターンを使用しますが、GUIにQMLを使用する場合の主な懸念事項は、C++アプリの残りの部分に統合するのが簡単ではない可能性があることです。

お気軽にご相談ください。よろしくお願いします。ありがとうございました!

4

3 に答える 3

47

QMLは、主にモバイルプラットフォームを対象としています。若く、さまざまなプラットフォームインターフェイスの規則に関心があるため、ボタンやコンボボックスなどの標準的なコントロールがありません(ただし、コンポーネントプロジェクトを参照してください)。モバイルを使用している場合、またはUIに高度にカスタマイズされた視覚スタイルが必要な場合は、QMLを検討する価値がありますカスタムコントロールを設計する際の多くの追加作業に備えてください。私の意見では、QMLとC++の統合はまだかなり難しいです。個人的には、QMLは、より単純なアプリ、モバイルプラットフォーム、およびJavaScriptでのみ使用することをお勧めします。適切な状況では、C++でカスタムQML要素を作成することを検討するかもしれません。

QtのC++APIはすぐになくなることはありません。また、デスクトップを念頭に置いて設計されており、デスクトッププラットフォームでのユーザーの期待に応えるためのより良い仕事をします。 デスクトップを使用している場合は、C++とDesignerを使用することをお勧めします。 QMLが少し成熟した後でも、ほとんどのデスクトップアプリにとって適切なソリューションではない可能性があります。

アップデート!

物事が変化し始めているようです。私はまだ新しいコンポーネントを試していません。ドキュメントは少しまばらに見えます(または少なくとも邪魔にならないようです)が、これにより、デスクトップでQMLを使用する際の最大の障壁が最終的に取り除かれる可能性があります。これが長期的にサポートされるかどうかはまだわかりませんが、早期採用のリスクを受け入れる意思がある場合は、QMLがデスクトップアプリの実行可能な選択肢になる可能性があると思います。

于 2011-01-05T23:57:35.980 に答える
15

QMLを少し試して、ニーズに合っているかどうかをテストすることをお勧めします。

動的なインターフェイスとアニメーションを使用して高度にカスタム化されたUIを構築している場合は、QMLがその仕事に適しています。従来のデスクトップアプリケーションを構築している場合は、おそらくQt C++APIを使い続けることをお勧めします。

QMLとC++の統合に関しては、QMLはC ++コードと簡単に統合できるように設計されており、多くのQMLアプリケーションはある種のC++バックエンドを使用しています。C ++オブジェクトをQMLインターフェイスに挿入したり、C++でカスタムQML要素を記述したりするのは簡単です。http://doc.qt.io/archives/qt-4.7/qtbinding.htmlおよびhttp://doc.qt.io/archives/qt-4.7/qml-extending-tutorial-index.htmlをご覧ください。

于 2011-01-06T06:32:32.893 に答える
13

上記の回答で見逃されていることの1つは、QMLにはビジネスロジック用のJavaScriptの追加の長所/短所があることです(必要な場合)。私は現在、デスクトップ用の(中小規模の)サイズのアプリケーションを構築していますが、現在、私の(2)アルファユーザーはそれを楽しんでいます。フレームワークの表現力と、それをすばやく立ち上げてテストできることに感銘を受けました。全体として、RADエディター(デザイナー)よりも操作が速く、ホバー/検証などの厄介なことをしているときに、UIのフォールバックとしてJavaScriptを使用することを楽しんでいます...

それはあなたがその言語にどれだけ慣れているかという問題だと思います。C ++があなたの「行く」言語であるなら、おそらくあなたはデザイナーを好むでしょう。Webからアクセスしている場合(告白、私はJavaEEエンジニア/MVC .NET開発者で多くのフロントエンドを実行しています)、Webを更新して高速に処理できます。

また、ユーザーが最近期待する応答性も可能になります。全体的に、私はそれに大きなプラスを与えるでしょう。それを試してみてください-あなたはおそらく同じ時間枠でかなり喜ばれ、むしろイライラするでしょう。私はまだいくつかのこと(特にFileIO)に腹を立てていますが、デスクトップではめったに行わない方法でGUIの側面を楽しんでいます。

于 2013-11-26T21:57:28.143 に答える