6

現在、アプリケーションの 1 つを QT を GUI として C++ に移植しています。QML サンプルは非常によく見えますが、ユーザー インターフェイス コントロールは、Windows および MacOS の通常のものとは異なります。

QML が提供する多くの優れた機能 (アニメーションなど) を使用したいと考えていますが、通常のものと同様に見えるコントロールも備えています (標準の QT を使用するかのように)。

スタイル付きのQMLコントロールをどこかで見つけることができますか、またはどのアプローチをお勧めしますか.

4

3 に答える 3

3

ヘッジ、UIがネイティブに見えなかった理由は2つあります。

1)Qt Quick(QML)は、基本的なプリミティブのみが利用できる段階にあります。つまり、実際のUI要素(ボタン、ツールバーなど)はまだ利用できません。コンポーネントの基本セットに含まれているリストビューのようなものがいくつかあります。Qtの人たちによって行われているいくつかの作業があり、ここで利用可能なデスクトップコンポーネントのいくつかを見つけることができます。

http://qt.gitorious.org/qt-components/desktop

これらはデスクトップ上ではネイティブに見えますが、現時点では非常に初期の不安定な段階にあります。

2)Qt Quick(QML)は、Nokiaが所有するQt Development Frameworks(旧Trolltech)という会社によって開発されており、Nokiaは世界最大の携帯電話メーカーの1つです。Qt Quickは、モバイルおよび組み込みプラットフォームのタッチユーザーインターフェイス用に作成されており、当初はMeeGoプラットフォームを対象としていました。MeeGo用のQMLコンポーネントのセットが開発されていますが、Qt Development Frameworksによると、マーケティング上の理由からブログは公開されていません。一般に公開されているバージョンは古くはありませんが、何が起こっているのかを知ることができます。ここで利用可能:

http://qt.gitorious.org/qt-components

アプリケーションがデスクトップ用に開発されている場合は、デスクトップフレームワークにC ++ / Qtを使用することをお勧めします。これにより、アプリケーションのネイティブなルックアンドフィールが提供されます。Qt Development Frameworksは最近、商用ライセンスとサポートをDigiaという会社に渡す際に、主な戦略がQtQuickになると述べています。したがって、デスクトップバージョンのQtを使用する価値があるかどうかを考えるのは理にかなっているかもしれません。

お役に立てば幸い

于 2011-04-08T18:48:57.903 に答える
1

QWidget を埋め込んで、QML から使用できます。少しの C++ が必要で、純粋な QML ウィジェットほど良くはありませんが、かなりうまく機能し、多くの既存の Qt 機能にアクセスできます。

here で(簡単に)説明されているように、 QGraphicsWidgetを使用できます。または、逆を行うこともできます。ここで説明されているように、 QDeclarativeViewを使用して、Qt GUI 内に QML インターフェイスを埋め込みます。

于 2011-04-09T23:13:08.763 に答える
1

ダン、それはそれを行う方法ですが、私はそれが正しいか間違っているかを考慮せずに「ただそれを行う」方法だと思います. さらに、あなたのソリューションが間違っていると言っているのではありません。アプリケーションをそのように実装すべきではないと私が信じる理由を説明しようとしているだけです。

まず、Qt Quick は、その名の通り、ユーザー インターフェイスをすばやく作成できるように設計されています。Qt デスクトップ ウィジェットをグラフィックス シーンに埋め込もうとすると、API を QML 環境にエクスポートしてすべてを機能させるという追加の作業が必要になります (タスクによっては、かなり大きな作業になる場合があります)。QML アプリケーションのアーキテクチャは、デスクトップとは大きく異なります。たとえば、model-view-controller を使用する場合、QTreeView と QItemDelegate を QML にエクスポートして機能させると、非常に複雑なソリューションになる可能性があります。実際、その概念に従う場合、最も簡単な方法はすべての UI を C++ バックエンドで作成し、最終的なソリューションを QML にエクスポートすることですが、実際にはQML をまったく利用しないデスクトップ実装。そのように実装する場合、QML と同じ「流動的な」効果を提供する Qt Animation API を使用する方がはるかに簡単ですが、純粋に QGraphicsView を使用するだけです。

第二に、QGraphicsView で既存のデスクトップ ウィジェットを使用する場合は、それらを「プロキシ ウィジェット」として埋め込む必要があります。これは、Qt Quick と QML に取り組んでいる Nokia の担当者によると、パフォーマンスに大きな問題があります。

第三に、QGraphicsWidget アプローチを使用する場合、Qt には QGraphicsWidget ベースのウィジェットがないため、すべてのウィジェットを最初から実装する必要があります。プッシュ ボタン ウィジェットのような単純なものでも、すべてのコードを自分で記述する必要があります。

第 4 に、Nokia が以前に述べたように、彼らは Qt デスクトップ サポートをサード パーティの会社に引き渡し、Qt Quick に全力を注いでいると説明しました。だから私はあなたのアプリケーションの保守性について考えます。さらに、今後の QML シーン グラフでは、すべての QML API がその実装に移行されますが、デスクトップ ウィジェットを使用できるかどうかはわかりません。

于 2011-04-10T13:03:19.333 に答える