2012-08-23 82 views
2

我需要使用一个DLL库 - 请求窗口句柄(HWND)在窗体上自绘。 我不希望它将整个主窗体打乱,而是显示在子窗口小部件的区域中。
现在,这是使用Windows窗体的问题。但是,我可以使用Qt,还是使用基于Qt QML的UI?

比方说,我有一个主窗口,并希望此库在主窗口内的QML矩形上绘制自己。我能否以任何方式向图书馆提供有效的处理?
这个帖子是相关的,但并没有解决任何问题:DevNet HWND in QMLQt,C++ QML和HWND

回答

0

是的,这是可能的,我前几天做了一个项目。

感谢:QWidget::winId,您可以检索任何小部件的胜利ID。

我没有尝试QML,但由于QML绘制在QGraphicsView(这是一个QWidget),也许这可以工作。

+0

谢谢你,这是有道理的。因为qlm的东西在QGraphicsScene中,所以任何qml组件都可以给我一个窗口句柄。我想最好的方法是将ui放在小部件上并放在qml中我需要它。 –

+0

我想你很了解QT4的理念,对于很多桌面应用程序,你可以构建所有的应用程序而不用做QML。在QT4中,如果你想做一个现代的“look n feel”应用程序,QML非常有趣。在QT5中,情况会有所不同,我认为每次都会使用QML(但QT5中也会存在旧的QWidget) –

+0

是的,QT5是我提出这个问题的主要原因。如果将UI用于QML而不是小部件是未来的话,那么这可能不那么容易。 –