2016-11-01 14 views
0

.NETアプリケーションに統合する必要があるQtウィジェットを作成しています。 WPF用のラッパークラスを書くのにthisという記事を使用しました。 私が直面した問題は、ウィジェットが割り当てられたスペース全体を占めていないことです。それは添付画像上で容易に見ることができる。Qtと.NETの統合:サイズ変更の問題

.Net resize issue

私はネットで簡単に目に見える私のクラスを維持したいと思いますので、COM/ActiveXのの使用を伴わないこの問題の簡単な解決策があるのだろうか?

+0

あなたが従った記事は、ネイティブウィンドウなどを介して不必要に迂回するルートを提供します。それはパフォーマンスの犠牲者であり、必要ではありません。 Qtはあなたのウィジェットを 'QImage'にレンダリングすることができます。あなたが必要とするのは、WPFコントロールにそれをインターフェースすることだけです。同様に、WPFコントロールからのイベントを翻訳し、それらを 'QWidget'に渡すことができます。 –

+0

@Kuba面白いですが、このアプローチもかなり間接的なようです。 –

+0

これは間接的なことではありませんが、内部的にWPFは多かれ少なかれ同じことをしています。現代のUIはかなりビットマップにレンダリングし、ビットマップといくつかのジオメトリをCPUまたはGPUを使って合成します。 –

答えて

0

COMオブジェクトとインターフェイスを使用してジョブを完了させる必要があります。既存のアプリケーションを埋め込むためにフォームを操作する必要があるため、これを回避する方法はありません。 MSDNとstackoverflowにはこれに関する多くの情報がありますが、この実装は、望ましくない副作用がなく、適切な統合されたルックアンドフィールではありません。

埋め込みWin32 Qtアプリケーション/ウィジェットを中央に配置し、それに応じてWPFコンテナの色を付けることができますが、まだQtウィジェットを書くのに忙しいので、WPFとC# Qtコマーシャル使用のライセンス費用を節約するだけでなく、より優れた外観と感触を提供します。 WPFを使用することで、アプリケーションはWindowsに依存しています。 C++のパフォーマンス上の利点としてQtを使用している場合は、小さなC++アプリケーションを作成し、必要に応じてC#コードで実行してください。

+0

[こちら](http://doc.qt.io/qt-5/activeqt-dotnet.html)の記事では、COMのみを使用するように強制していないようです。独自のラッパーを書くか、ActiveQtを使うかは自由です。 –

+0

あなたは何をしようとしているのか、それは可能であることを完全に理解していますが、なぜこれを行い、あなたの人生を困難にしたいですか?なぜ彼らは両方(ほとんど)他のことができることを行うことができます完全に異なる技術に使用する?私は面白くしようとしていない、私は物事についてあなたの視点を得ようとしています。 – Elmar

+0

私は、.NETアプリケーションにQtウィジェットを埋め込むのがどれくらい難しく、どのような問題が起こるかを理解する必要があります。 私が必要とするのは、Qtデータ視覚化モジュールからの3Dサーフェスグラフの視覚化です。 SciChartのようなC#ベースのソリューションがあることはわかっていますが、私たちのニーズに合っていません。 そして、Qtライセンスの購入を考えているので、私はこの小さな研究を実行するように求められました。 –

関連する問題