• 141阅读
  • 5回复

[提问]QT开发安卓程序透明背景黑屏怎么解决 [复制链接]

上一主题 下一主题
离线byzzzw
 

只看楼主 倒序阅读 楼主  发表于: 06-07
方法一,在主窗口加上:
    QSurfaceFormat format;
   format.setRenderableType(QSurfaceFormat::OpenGLES);
   format.setAlphaBufferSize(8); // 设置透明度缓冲区大小
   format.setSwapInterval(1); // 设置垂直同步间隔
   QSurfaceFormat::setDefaultFormat(format);
   setAttribute(Qt::WA_TranslucentBackground, true);
   setAttribute(Qt::WA_NoSystemBackground, true);


方法二,在main函数加
   QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL, true);


以上  都不好用。还有好的解决办法嘛? 环境如下:
     QT5.7.1 + java1.8 + android SDK 24.41 + android NDK r12b -windows

在线samhuilong

只看该作者 1楼 发表于: 06-07
可能是没有设置opengl es的版本
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);



离线liudianwu

只看该作者 2楼 发表于: 06-10
回 samhuilong 的帖子
samhuilong:可能是没有设置opengl es的版本
format.setVersion(3, 2);
format.setProfile(QSurfaceFormat::CoreProfile);
....... (2024-06-07 17:08) 

大佬用过qt6.7没,我之前写的监控绘制的openglwidget绘制,6.7以前的版本都正常绘制。到了6.7就出不来画面,是什么原因呢
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
在线samhuilong

只看该作者 3楼 发表于: 06-12
回 liudianwu 的帖子
liudianwu:大佬用过qt6.7没,我之前写的监控绘制的openglwidget绘制,6.7以前的版本都正常绘制。到了6.7就出不来画面,是什么原因呢 (2024-06-10 08:17) 

我用的qt6.7的QOpenglWidget,底层绘制基于opengl3.3,应用程序运行没问题。
你试着设置opengl版本或者设置兼容模式QSurfaceFormat::CompatibilityProfile试试。
离线liudianwu

只看该作者 4楼 发表于: 06-13
试过了,设置QSurfaceFormat::CompatibilityProfile直接整个程序都是黑色的。版本的也都试过了,不行
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线liudianwu

只看该作者 5楼 发表于: 06-13
回 samhuilong 的帖子
samhuilong:我用的qt6.7的QOpenglWidget,底层绘制基于opengl3.3,应用程序运行没问题。
你试着设置opengl版本或者设置兼容模式QSurfaceFormat::CompatibilityProfile试试。 (2024-06-12 14:53) 

之前这个现象在6.6.0 6.6.1  6.6.2都有,但是到了6.6.3居然正常。说明应该是修复了。但是6.7.0  6.7.1又出现了。难道又是为了KPI新增的?
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
快速回复
限100 字节
 
上一个 下一个