qt中如何实现界面最小化时呈现收缩形式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt中如何实现界面最小化时呈现收缩形式相关的知识,希望对你有一定的参考价值。
直接点击按“windows”+“M”即可做到多窗口最小化的目的。如下图:
另外Windows 7任务栏最右处的显示桌面按键可以让多窗口最小化,但是当点开一个正在运行的窗口或新建一个对话窗口时,原显示的窗口都会恢复显示。
如果是任务栏标签最小化,则直接右击任务栏空白处,选择属性→点击任务栏按钮→选择从不合并,即可解决。 参考技术A QT最小化窗口,我知道的就是设置窗口在显示:w.setWindowFlags(Qt::WindowMinimizeButtonHint);设置图标
触发设置状态:w.setWindowState(Qt::WindowMinimized);//设置显示最小化
如果是实现收缩的慢速最小化,说实话我没有找到过这样的属性,不知道楼主找到了没有,可否共享一下呢,最近我也需要实现这种效果。
如何在屏幕外窗口中呈现焦点指示器?
【中文标题】如何在屏幕外窗口中呈现焦点指示器?【英文标题】:How to render focus indicators in an offscreen window? 【发布时间】:2018-03-20 10:43:32 【问题描述】:我正在尝试使用 Qt 在虚拟现实中实现自定义用户界面。
我正在使用 QQuickRenderControl
将 QML 中定义的一些 UI 渲染到 OpenGL 帧缓冲区中。 在我的自定义 OpenGL 场景中,生成的纹理被绘制到一个四边形上。使用运动控制器模拟鼠标事件。
这一切都很好,但我无法以“活动”或“集中”样式呈现 UI。例如,如果我激活一个文本字段,则没有光标和蓝色轮廓,因为屏幕外窗口(QQuickWindow)不被视为活动窗口。它从未真正显示在桌面上 - 它只存在于内存中。
如果我强制窗口显示在桌面上并将其设置为应用程序的前窗口,则活动文本字段将正确呈现 VR 场景中的焦点轮廓和光标。但是,我想避免在桌面上显示这个窗口(它呈现为一个空白窗口)。
有没有办法强制 QQuickWindow 像前窗一样呈现,即使不是这样?
【问题讨论】:
您找到解决方案了吗? 很遗憾没有。从那以后我切换到了虚幻引擎。 【参考方案1】: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
但看起来不太好。
【讨论】:
如果你想将事件从测试窗口发送到m_quickWindow
,那么不要忘记在测试窗口设置标志Qt::WindowDoesNotAcceptFocus
以避免失去m_quickWindow
的焦点。以上是关于qt中如何实现界面最小化时呈现收缩形式的主要内容,如果未能解决你的问题,请参考以下文章
qt creator菜单栏实现clean实现清除界面上3个文本框中的内容,该如何实现,求教