一、碰到的问题:

用 QOpenGLWidget 显示YUV数据视频时,部分电脑设置全屏时会黑屏。

二、 Qt 给出的方案

Fullscreen OpenGL Based Windows

When a window is using an OpenGL based surface and is appearing in full screen mode, problems can occur with other top-level windows which are part of the application. Due to limitations of the Windows DWM, compositing is not handled correctly for OpenGL based windows when going into full screen mode. As a result, other top-level windows are not placed on top of the full screen window when they are made visible. For example, menus may not appear correctly, or dialogs fail to show up.

A window can use an OpenGL based surface either explicitly when setSurfaceType() is called, or when something that requires OpenGL is used inside the window, causing the whole window to be OpenGL based. For example, QOpenGLWidget or QQuickWidget can trigger this. However, if the surface is contained in a QWindow which is hosted with createWindowContainer(), or the obsoleted QGLWidget is used and it does cover the entire full screen window, then this problem does not occur.

To solve this problem, a QWindowsWindowFunction can be used to enable a native Windows flag which will set WS_BORDER when showing in full screen mode. This can be utilized as follows:

  QWindowsWindowFunctions::setHasBorderInFullScreen(tlwWindow->windowHandle(), true);

This will give the full screen window a 1-pixel border, thus enabling the other top level windows to appear on top.

QOpenGLWidget 全屏显示黑屏解决方案相关推荐

  1. 微信小程序图片全屏预览组件,并解决svg真机显示黑屏问题

    自己码了个微信小程序图片全屏预览组件,并解决了svg真机显示黑屏问题(即png等格式可以正常显示,但就svg无法显示). /*** 微信小程序图片预览组件* 1.支持预览svg.png.jpeg.jp ...

  2. cf不能全屏win7的解决方法_Win10运行DNF全屏后黑屏怎么办|DNF全屏后黑屏解决方法...

    DNF是目前还有不少用户在玩的游戏,有使用win10系统的用户,全屏玩DNF这款游戏的时候,出现黑屏,从游戏外取消窗口化或者还原初始配置,已经尝试多种办法,问题都没有得到解决.这篇文章是系统部落给大家 ...

  3. 计算机和hdmi无法正常显示,如果计算机使用HDMI接口连接到显示器,显示不正常或者甚至无法显示黑屏,该怎么办...

    现在可能是显示接口最复杂的时代了,例如HDMI,DP(DisplayPort),DVI和稍微过时的VGA都在"服务中"并在不同的设备和领域中使用. 但是有一个非常有趣的现象. 当计 ...

  4. android AppCompat, splash启动白屏(黑屏)全屏,去掉状态栏,以及splash与虚拟按键遮挡

    在做项目是,需要加一个splash,以美化应用,消除app启动等待的乏味 一.使用环境 使用Android Studio activity 继承 AppCompatActivity, 实现splash ...

  5. html5video拼接屏一部分黑屏,LCD拼接屏几种常见的故障及解决方案

    LCD拼接屏几种常见的故障及解决方案 LCD拼接屏是一种工业级的显示产品,其显示面板是经过特殊的工业级处理,所以可以连续24小时开机,并且还能一直保持高性能的稳定显示,但是在某些特殊情况下,LCD拼接 ...

  6. win10电脑黑屏只有鼠标箭头_电脑开机进入系统后显示黑屏,只能看到一个鼠标指针,如何解决?...

    使用电脑时可能会遇到各种小问题,当电脑开机后进入系统后显示黑屏,看不到任何图标只有一个鼠标指针的情况,这是资源管理器没有正常加载并运行的原因.我们可以调出任务管理器重新启动下资源管理器,就可以让桌面图 ...

  7. android华为虚拟截屏黑屏,Android截屏表面视图显示黑屏

    Android截屏表面视图显示黑屏 我试图通过代码拍摄我的游戏的截图,并通过一个意图来分享它.我能做这些事情,但是截图总是看起来是黑色的.下面是与分享截图相关的代码:View view = MainA ...

  8. 电脑显示黑屏但是鼠标能动怎么处理?

    电脑显示黑屏但是鼠标能动怎么处理? 1.首先打开电脑,然后同时按住Ctrl+Alt+Delete,打开任务管理器,之后会弹出一个新的页面: 2.在任务管理器左上方点击"文件",找到 ...

  9. html5播放推流播放地址是黑屏的,OBS Studio直播推流显示黑屏怎么办?教你解决方法...

    利用OBS Studio进行直播推流可以吸引更多用户,快速涨粉,当然了,如果你是第一次接触OBS推流,可能会遇到一些困扰.如果OBS Studio直播推流显示画面黑屏,大家可以参考本文整理的方法进行解 ...

最新文章

  1. 参加第十一届开源黑客松大会有感:
  2. C++中const char*, string 与char*的转化
  3. 风变python基础语法第11关_Python基础语法学习笔记之风变第十四关项目实操
  4. 插入数据类型为DateTime时为空值时,为什么SQL SERVER会自动加上1900-01-01
  5. web前端已经不行了?千万不要信
  6. javascript-字典形态对象与数组形态对象
  7. 基于JAVA+Servlet+JSP+MYSQL的交通罚单管理系统
  8. java 查找排序_数据结构(Java)——查找和排序(1)
  9. 【转自Mgen】 .NET(C#):谈谈各种结束进程的方法
  10. Java的Interrupt与线程中断
  11. amd opencl使用低版本驱动
  12. 2017实习生在线编程——奇虎360(分金子)
  13. StartDT奇点云邀您参加2022云栖大会,11月3-5日杭州见
  14. 关于Dev-C++下载及国语转换
  15. python对外正式发布年份_python正式对外发布的年份
  16. 面试时,如何回答你还有什么想要了解的?
  17. 信号满格怎么显示无法连接服务器,Win7 32系统网络信号满格却无法连接上网怎么处理...
  18. 异常 exception
  19. Python开发网站
  20. os.listdir(path)

热门文章

  1. python中脚本是指什么_python脚本是什么
  2. html网页特效微课,网页设计与制作(HTML5+CSS3+JavaScript)(第4版)(微课版)
  3. react入口文件_React项目文件结构解析
  4. 元数据管理—企业数据治理的基础
  5. live555库安装_Live555实战之交叉编译live555共享库
  6. linux grud文件丢失,linux grub.conf丢失
  7. emui10.1是鸿蒙系统,华为EMUI10将使用鸿蒙OS微内核,鸿蒙系统离我们很近了
  8. 亚马逊发布AI跟踪系统,监督员工能否保持社交距离
  9. shutdown 关机命令
  10. python实现lenet_LeNet - Python中的卷积神经网络