Jaw*_*wap 6 c++ qt qml qtquick2
我正在尝试使用 Qt 在虚拟现实中实现自定义用户界面。我正在使用QQuickRenderControl将 QML 中定义的一些 UI 渲染到 OpenGL 帧缓冲区中。
生成的纹理被绘制到我的自定义 OpenGL 场景中的四边形上。使用运动控制器模拟鼠标事件。
这一切都很好,但我无法以“主动”或“聚焦”风格呈现 UI。例如,如果我激活一个文本字段,则没有光标和蓝色轮廓,因为屏幕外窗口(QQuickWindow)不被视为活动窗口。它从未真正显示在桌面上——它只存在于内存中。
如果我强制将窗口显示在桌面上并使其成为应用程序的前窗口,则活动文本字段将使用 VR 场景中的焦点轮廓和光标正确呈现。但是,我想避免在桌面上显示这个窗口(它呈现为一个空的白色窗口)。
有没有办法强制 QQuickWindow 像前窗一样呈现,即使情况并非如此?
小智 2
m_quickWindow->setX(-m_quickWindow->width());
m_quickWindow->setY(-m_quickWindow->height());
m_quickWindow->setFlag(Qt::SplashScreen);
m_quickWindow->show();
Run Code Online (Sandbox Code Playgroud)
Qt 5.11 没问题
m_quickWindow->setOpacity(0.f);
m_quickWindow->setFlags(Qt::SplashScreen | Qt::WindowTransparentForInput);
m_quickWindow->show();
Run Code Online (Sandbox Code Playgroud)
更好的解决方案 - 适用于 Qt 5.15
但看起来不太好。
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |