16

Nokiaは、Qtの最近のベータバージョンでQt Quick(CSS / HTMLを使用するように宣言的にUIを構築する)を導入しました。このサンプルページを確認してください

反対に、「従来のQt」によって開発されたUIは、それほど派手ではないようです(間違っている可能性があります。以下の免責事項を参照してください)。

だから私の質問は、新しいデスクトッププログラムに「TraditionalQt」または「QtQuick」を使用しますか?なんで?

私の最初の考え:

「従来のQt」:

長所:

  • 使用されるテクノロジー全体は少なく、したがって単純です。PySideを使用する場合は、Pythonでコーディングするだけで、QtQuickのCSS/JSのようなものをいじる必要はありません。

  • それは成熟しています。

    短所:

  • 派手なUIを構築するのはもっと難しいようですか?

「Qtクイック」:

長所と短所:その逆。

Edit:Qt Quickには欠点があります。間違っている場合は訂正してください。QtQuickUIをWYSIWYGの方法で設計することはできませんよね?

免責事項:私はQt、PySide、Pythonを初めて使用しますが、最近、これらの技術を使用してデスクトッププログラムを構築することを評価し始めました。

4

4 に答える 4

8

私のデスクトップ用のqmlをいじっていて、私は個人的にこれを見つけました:

  • 従来のqt/c ++ / pyqtよりもアニメーションを作成する方が簡単です(私はアニメーションが大好きでした:)
  • すべての例を調べたわけではありませんが、qmlアプリのコードサイズはC++の同等のアプリよりも小さく見えます

qmlで見つけた問題

  • qmlデザインのサポートが不十分です-現時点ではカスタム要素がqm​​lデザイナーに表示されません。これは大きな苦痛です。理想的には、デザイナーにUIを作成してもらい、コードに集中する必要があります。彼らのqmlデザイナーはまだいくつかの作業が必要です
  • qtでスクリプトを作成する「推奨」方法であるため、JavaScriptを学ぶことが期待されます。Javascriptは簡単ではありません。たとえば、Pythonの学習には数時間かかりましたが、JavaScriptは表面的にはcに似ていますが、概念の一部が異なります。また、JavaScriptとqmlだけで書かれたアプリで知的財産を保護できるかどうか疑問に思います(間違っている場合は修正してください)
  • ネイティブウィジェットはqmlでは使用できません。たとえば、独自のウィジェットを形成するために組み合わせる長方形などを提供するだけです。

これは私がqmlで遊ぶのを止めませんでした、そしてそれが成熟するにつれて、私は待って見て態度をとるでしょう。現在、私のuiの一部にqmlを使用し、バックエンドにc++を使用しています。

于 2011-03-31T12:25:52.787 に答える
4

あなたは1つの間違いを犯しました:QtQuickはQtのベータ版でのみ利用可能ではありません。これは4.7以降の公式Qtリリースの一部です(ただし、マイナーバージョンごとにQt Quickが提供する機能が大幅に改善されています)。

「通常の」QtUI(QWidgetsとレイアウトおよびすべてを含む)は古いですが、これは必ずしもQtQuickが未成熟であることを意味するわけではありません。結局のところ、これはリリースの一部です。

長所と短所で指摘できないことの1つは、パフォーマンスです。「通常の」Qt UIは事前に作成されており(ほとんどの場合、基本的に)、QtQuickUIはQMLとCSS/HTMLの実行時の解釈に依存しています。これはほとんどデスクトップシステムのアプリケーション速度に影響を与えませんが、UIを凝りすぎているためにパフォーマンスのボトルネックに遭遇した場合は、警告しなかったとは言わないでください。このようなボトルネックは、おそらく最初からOpenGLを使用する必要があることを意味します。

Qt Quickは、クールなUIを構築する簡単な方法を提供し(とにかくそれがセールスポイントです)、古いものよりも簡単な方法でクールな効果を使用できるようになります。

于 2011-03-31T09:57:25.313 に答える
3

Pythonを使用している場合は、おそらくパフォーマンスについて心配する必要はありません。従来のQtは、QSSを介して派手な外観も可能にします。Qt Quickが提供するのは、UIを簡単に構築し(4.8で導入されているツールサポートがなくても)、スクリプトを使用してそれを機能させる方法です。

主にQSSを使用し、既存のウィジェットを派生させることで、従来のQtを使用して豪華なUIを作成することもできます。ほとんどのQtの例はこれに焦点を当てていませんが、それができないという意味ではありません。また、特にC ++でコーディングした場合は、全体的なパフォーマンスが向上する可能性があります。

私はそれをよく知っているので、伝統的なQtを使用します。しかし、これはとにかく主観的なものなので、あなたの質問は締めくくられると思います。

于 2011-03-31T09:55:36.730 に答える
0

私は従来のQtUIシステムの経験があまりありません。しかし、私はあなたにQtQuickでの私の経験を与えることができます:

  • QMLを使用したUIはよりシンプルです。
  • QMLを使用すると、MVCパターンを使用してより適切に開発できます。これにより、ビューがモデルから分離されます。実行時に異なるバージョンのUIをロードできます。
  • QMLにより、高度なUIの開発が可能になります。
  • 現在、非常にパフォーマンスが高いです(QSceneGraphテクノロジーを使用)。複数のUIスレッドに実装されています!C ++を使用してよりパフォーマンスの高いUIを作成できるかどうかはわかりません!
  • UIデザイナーは、HTML + CSS+Javascriptよりも簡単なUIを開発できます。
  • 特定のクラスを使用して、C++でカスタムUIエレメントを開発できます。
  • QMLはOpenGLに基づいており、Qtの無料バージョンではそれに注意する必要があります。
  • QMLには、特定のデバッガーとプロファイラーがあります。UIでのデバッグはとても簡単です。

MVCなどの標準的なパターンを使用してアプリを開発する場合は、QMLの方が適している場合があります。
パフォーマンスノートに注意する必要があります。

于 2016-03-05T19:06:53.787 に答える