2017-10-05 19 views
0

私は新しいQtアプリケーションを開発しており、サードパーティのActiveXコントロールを埋め込む必要があります。私は最後の日にQtクイックコントロール2.0について学びましたが、ActiveXコントロールはQtウィジェットアプリケーションにのみ埋め込むことができると懸念しています。そうですか?Qt - ActiveXコントロールを埋め込む

公式のものが私のような初心者のために少し難しいように思われるので、私の問題についてのチュートリアル/例を示唆することもできます。

ありがとうございました!

答えて

1

ActiveX Qt搭載ウィジェット をQt Quick(QML)と一緒に1つのアプリケーションで使用できますか?

短い答え:はい。

詳細:Qt QuickとActiveXの両方を独自のウィジェットコンテナに組み込む必要があります。

  • 最初からウィジェットベースのWindows Qtアプリケーションをビルドします。 Example

  • QWidget::createWindowContainer()でQML UIをウィジェットに埋め込む方法の1つです。

  • ActiveXコントロールを保持するために独立した埋め込みまたは埋め込みを作成します(QAxWidget)。

  • サードパーティのActiveXを処理する最良の方法は、そのタイプライブラリをQutlook Example (ActiveQt)のようにインポートすることです。

P. QMLはQtでActiveXを行うことを妨げていませんが、2つの別々のタイプのUIであり、同じウィンドウを共有しません。それらは、他のQtウィジェットに埋め込まれているだけです。私はQt/QML/ActiveXを使ってそのようなハイブリッドアプリケーションを開発していましたが、そうするための完全なガイドはありません。たぶん、多少の詳細と、個別のトピックであるActiveXインターフェイスの詳細を扱う必要があるかもしれません。

+1

'QQuickView'の代わりに' QQuickWidget'を使う+ QWidget :: createWindowContainer() ' – GrecKo

+0

お返事ありがとうございました! QMLにボタンがあり、クリックしたときにActiveXコントロールで何かしたいと思っていますが、どうすれば実現できますか?クリック信号をウィジェットウィンドウ内のスロットに「接続」してからActiveXコントロールを呼び出す必要がありますか? – Brutus

+1

はい、シグナルスロットは一般的なメカニズムであり、message.httpsを配信します://stackoverflow.com/questions/43758113/how-to-connect-a-qml-signal-with-a-c-slot – AlexanderVX

関連する問題