Qt 解决程序全屏运行弹窗引发任务栏显示
Posted DreamLife.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 解决程序全屏运行弹窗引发任务栏显示相关的知识,希望对你有一定的参考价值。
文章目录
关键字:
Qt
、
Qt::WindowStayOnTopHint
、
setWindowFlags
、
Qt::Window
、
Qt::Tool
摘要
今天眼看项目就要交付了,结果在测试程序的时候,发现在程序全品情况下,点击输入框,弹出虚拟软键盘,结果下面任务栏就给弹出来了。其实这个也不算怎么问题,主要就是如果弹出任务栏,就会导致用户可以通过任务来进入到系统其他地方,不符合网络安全相关法规。
其实要解决这个问题也也有很多方法,比如可以在系统层面直接做定制,把不要的都去掉,但是按照目前时间节点是不可能实现的,所以只能在程序上想办法。
在VM虚拟机器中测试
这里还有一个尴尬的点,那就是在虚拟机中测试是没有问题的,在程序调用全屏显示的时候,任务栏是关闭,这就导致一直没有关注这个问题,之前为了开发开发方便,是直接屏蔽登录模块的,这就导致一直没有测试这个键盘输入的问题,今天产品来全流程测试的时候,发现只要在登录框点击输入,弹出软键盘,就会有下面的任务栏显示出来。
所以为了解决这个问题,首要的还是去百度,结果百度的结果都是大家都在等结果,开来还是得应了那句话,网上的问题基本都是自己提问自己回答,所以,还是老老实实自己摸索。
更可气的是,我决绝了这个问题,但是这个问题不让回答了,GGGGG。
setWindowFlags()
这里需要用到这个函数,玩过Qt的对这个应该都不陌生,目前的解决方法就是利用这个还是,将程序全屏以后,使用保持在最前端显示,这里我尝试过将窗口设置为Qt::Tool
模式,这个在win下用的没有问题,Linux下直接就给我下面空白了,所以还是得用Qt::Window
,但是后面可以再跟一个Qt::WindowStayOnTopHint
这样就可以,目前在我程序里面测试没有问题。希望我的这方法也可以解决你的问题,祝君好运。
以上是关于Qt 解决程序全屏运行弹窗引发任务栏显示的主要内容,如果未能解决你的问题,请参考以下文章