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

文章目录

  • 摘要
  • 在VM虚拟机器中测试
  • setWindowFlags()


关键字:

Qt

Qt::WindowStayOnTopHint

setWindowFlags

Qt::Window

Qt::Tool

摘要

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

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

在VM虚拟机器中测试

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

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

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

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

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

setWindowFlags()

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

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


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