我有一个可以工作的Qt小部件,我想在.NET应用程序中显示它。应用程序使用的是WPF,我想将该小部件嵌入到UI中的某个位置。
在WPF应用程序中嵌入Qt小部件的推荐方式是什么?我应该使用C++/CLI并将HWND传递给WPF,还是只使用ActiveQt?我担心Qt事件机制,因为没有人会调用QApplication::exec()
发布于 2011-12-21 16:32:41
您需要做的是使用QAxServer将您的小部件转换为COM对象:
http://developer.qt.nokia.com/doc/qt-4.8/activeqt-server.html
这会将您的对象转换为COM对象。然后,您应该能够这样引用它。然而,这确实不是跨3种技术(Qt,COM,WPF)工作的正常做法。
为了来回通信,您需要设置绑定:
http://developer.qt.nokia.com/doc/qt-4.8/qaxbindable.html
发布于 2012-10-09 21:50:29
ActiveQt是否仍然受到积极支持?!只是想知道..。
在我的一个项目中,我遇到了类似的问题。我通过将Qt初始化(QApplication和::exec())包装在一个函数中解决了这个问题,我通过PInvoke调用该函数,然后使用QWidgets () (QWidget::getDC()返回本机句柄)。
这不是最干净的方式,但结合使用Qt、COM和WPF也不是最干净的方式^^
https://stackoverflow.com/questions/4721786
复制相似问题