我想使用两个小部件(一次一个)作为我的应用程序的基础/背景,顶部有一个QML UI和一个无边框窗口。它应该是这样的:
layout http://fs1.directupload.net/images/141211/cruvrltu.png
我已成功将组件1包含到QGLWidget中,并在其上显示QML组件。工作没有问题。
但是,我无法使组件2工作。如果我将它包含在顶级QWidget中并使用其winId
来访问句柄,我可以轻松完成。不幸的是,我无法在此基础上进行构建。我经历了几个选项,但它们似乎都不够:
QWidget::createWindowContainer
,但不允许(透明)重叠。我的问题是,我不知道如何使用QML覆盖非GL小部件,然后知道如何将所有内容包含到一个应用程序中(当在两个小部件之间切换时,setViewport
可能存在父问题)。有没有人做过这个或者可以指出可能显示结果的方向?
我正在使用Qt 5.2.1,VS2012和针对x64(需求)构建,针对Windows桌面。
拥有一个高性能的解决方案当然是好的,可能基于QtQuick2,但是我很遗憾,我会接受任何至少会让它暂时起作用的东西。
答案 0 :(得分:2)
最后,我使用QWindow,使用其窗口句柄来集成3D可视化,然后将其与QQuickView组件(QWindow作为父组件)重叠。该解决方案的唯一缺点是它不允许透明。