Qt 解决程序全屏运行弹窗引发任务栏显示

Posted DreamLife.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 解决程序全屏运行弹窗引发任务栏显示相关的知识,希望对你有一定的参考价值。

文章目录


关键字: QtQt::WindowStayOnTopHintsetWindowFlagsQt::WindowQt::Tool

摘要

今天眼看项目就要交付了,结果在测试程序的时候,发现在程序全品情况下,点击输入框,弹出虚拟软键盘,结果下面任务栏就给弹出来了。其实这个也不算怎么问题,主要就是如果弹出任务栏,就会导致用户可以通过任务来进入到系统其他地方,不符合网络安全相关法规。

其实要解决这个问题也也有很多方法,比如可以在系统层面直接做定制,把不要的都去掉,但是按照目前时间节点是不可能实现的,所以只能在程序上想办法。

在VM虚拟机器中测试

这里还有一个尴尬的点,那就是在虚拟机中测试是没有问题的,在程序调用全屏显示的时候,任务栏是关闭,这就导致一直没有关注这个问题,之前为了开发开发方便,是直接屏蔽登录模块的,这就导致一直没有测试这个键盘输入的问题,今天产品来全流程测试的时候,发现只要在登录框点击输入,弹出软键盘,就会有下面的任务栏显示出来。

所以为了解决这个问题,首要的还是去百度,结果百度的结果都是大家都在等结果,开来还是得应了那句话,网上的问题基本都是自己提问自己回答,所以,还是老老实实自己摸索。

更可气的是,我决绝了这个问题,但是这个问题不让回答了,GGGGG。

setWindowFlags()

这里需要用到这个函数,玩过Qt的对这个应该都不陌生,目前的解决方法就是利用这个还是,将程序全屏以后,使用保持在最前端显示,这里我尝试过将窗口设置为Qt::Tool模式,这个在win下用的没有问题,Linux下直接就给我下面空白了,所以还是得用Qt::Window,但是后面可以再跟一个Qt::WindowStayOnTopHint这样就可以,目前在我程序里面测试没有问题。希望我的这方法也可以解决你的问题,祝君好运。


以上是关于Qt 解决程序全屏运行弹窗引发任务栏显示的主要内容,如果未能解决你的问题,请参考以下文章

QT无标题窗口在任务栏显示关闭(增加系统菜单)

Qt 实现桌面右下角消息弹窗提示

Qt自定义界面边框后,移动鼠标拖动界面,界面会拖到任务栏以下。。。如何解决?

Qt如何全屏显示图片

qt中如何实现界面最小化时呈现收缩形式

Qt实用技巧:Qt中添加对windows api的支持,显示/隐藏任务栏和桌面(解决无法找到windows api)