如何在屏幕外窗口中渲染焦点指示器?
How to render focus indicators in an offscreen window?
我正在尝试使用Qt在虚拟现实中实现自定义用户界面。 我正在使用QQuickRenderControl
将QML中定义的一些UI渲染到OpenGL帧缓冲区中。
生成的纹理将绘制到我的自定义 OpenGL 场景中的四边形上。使用运动控制器模拟鼠标事件。
这一切都很好用,但我无法以"活动"或"专注"样式呈现 UI。例如,如果我激活一个文本字段,则没有光标,也没有蓝色轮廓,因为屏幕外窗口(QQuickWindow)不被视为活动窗口。它实际上从未显示在桌面上 - 它只存在于内存中。
如果我强制在桌面上显示窗口并使其成为应用程序的前窗口,则活动文本字段将正确呈现,焦点轮廓和光标位于 VR 场景中。但是,我想避免在桌面上显示此窗口(它呈现为空的白色窗口)。
有没有办法强制QQuickWindow渲染,就好像它是前窗一样,即使不是这样?
m_quickWindow->setX(-m_quickWindow->width());
m_quickWindow->setY(-m_quickWindow->height());
m_quickWindow->setFlag(Qt::SplashScreen);
m_quickWindow->show();
Qt 5.11 没关系
m_quickWindow->setOpacity(0.f);
m_quickWindow->setFlags(Qt::SplashScreen | Qt::WindowTransparentForInput);
m_quickWindow->show();
更好的解决方案 - 适用于Qt 5.15
但它看起来并不好。
相关文章:
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- MFC:如何设置CEdit框的焦点?
- 在 ubuntu 焦点上编译虚幻引擎 4.25 时出错
- 如何在 wxWidgets 中从 wxTextCtrl 中删除焦点
- 每次qt窗口获得焦点时调用函数
- Qt如何在QRect上设置焦点
- 在树状视图中双击后焦点丢失
- FLTK:窗口在 MacOS 上获得焦点时的事件
- 禁用对透视的焦点
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- 当焦点丢失时,全屏GLFW窗口消失了
- 当在QTableView上丢失焦点时,失去背景颜色
- 即使另一个应用具有焦点,检测F1密钥的按键(和覆盖)键
- 当我的程序不在焦点中时,不拾取 GetAsyncKeyState. 在游戏中不工作
- 如何释放QPushButton的焦点,这是QDialog的默认按钮
- 为什么我的Qt小部件的焦点被改变了?
- Windows在OpenGL中更改焦点时会闪烁
- QTREEWIDGET子分类,停止下降指示器显示给定有不必要的DropIndicatorPosition
- Qcombobox :: ShowPopup()从其Qlineedit中窃取了焦点
- 如何在屏幕外窗口中渲染焦点指示器?