2016-06-16 16 views
1

Windowsオペレーティングシステムの下でQTウィジェット内で外部アプリケーションを実行することが可能か疑問でした。たとえば、Qt GUIアプリケーションを書く場合、ダイアログボックスの1つでテキストを書くことができますが、そこにテキストボックスなどを使用することができます。しかし、代わりに、そのダイアログでNotepad ++やWindowsのメモ帳アプリケーションを実行することは可能でしょうか? 私はすべての助けに感謝します。外部アプリケーションをQtの下のウィジェットに埋め込みます

+3

、 "可能性" を確認してください。 "イージー"ではない。 Win32では、別のプロセスを開始してそのプロセスのメインウィンドウのハンドルを取得できます(ただし、どのように正確に質問する必要はありません)。これで、 'QWindow :: fromId' +' QWidget :: createWindowContainer'を使ってウィンドウを埋め込むことができます。 – peppe

答えて

2

アプリケーションレベルで記述したことを実行して、プロセス全体を別のウィンドウに埋め込むことは実際的ではありません。 (技術的に困難で、ユーザーエクスペリエンスを取り除くことができれば、ユーザーエクスペリエンスはかなり悪くなるでしょう)

幸いにも、アプリケーションコンポーネントのこの問題は既に解決済みです! したがって、若干異なるメカニズムによって、記述した最終結果を得ることができます。多くのアプリケーションでは、オートメーションと埋め込みのためにCOMインターフェイスが公開されています.QtアプリケーションにCOMオブジェクトを埋め込むことも可能です。

(などDDE、OLEおよびActiveXなどの古い技術は、こののさまざまな側面を提供しますが、すべての基本的COM私の知る限りのために廃止されている。)

がうまくいけば、あなたが第三者からCOMオブジェクトを見つける、または見つけることができますCOMを介してコンポーネントを公開し、アプリをそのように組み立てるアプリです。

は、Qtのドキュメントを見てください:

関連する問題