我有一个工作的Qt小部件,我想在.NET应用程序中显示。该应用程序正在使用WPF,我想在UI中的某个位置嵌入该小部件。
在WPF应用程序中嵌入Qt小部件的推荐方法是什么?我应该使用C ++ / CLI并将HWND传递给WPF,还是只使用ActiveQt?我关心Qt事件机制,因为没有人会调用QApplication :: exec()
答案 0 :(得分:1)
您需要做的是使用QAxServer将您的窗口小部件转换为COM对象:
http://developer.qt.nokia.com/doc/qt-4.8/activeqt-server.html
将您的对象转换为COM对象。然后,您应该能够像这样引用它。然而,通过3种技术(Qt,COM,WPF),这实际上并不是一种常规做法。
要进行来回通信,您需要设置绑定:
答案 1 :(得分:0)
ActiveQt是否仍然得到积极支持?!只是想知道...
在我的一个项目中,我遇到了类似的问题。我通过将Qt初始化(QApplication和:: exec())包装在我通过PInvoke调用的函数中解决它,然后只使用QWidgets(QWidget :: getDC()返回本机句柄。)
这不是最干净的方式,但将Qt,COM和WPF结合起来并不是最干净的事情^^