QT应用之透明背景_嵌入式freambuffer_QWS背景淡绿色问题
2012-01-11 11:33
507 查看
在嵌入式平台,我们使用的QT会是以QWS方式运行,即会先运行QWSServer,再运行实际的窗体,在该情况下,默认QWS背景会是绿色的,而在嵌入 式上,很多方案都会将video和graphic层分开,两层的层叠也是可调的,当需要在video上面做一些控制图标等,此时就需要将gfx调到vid 之上,此时就需要将运行于gfx的qt程序设置背景透明,共需要设置两处:一处是QWS,一处是窗体。对此,我们使用qtcreator创建一个基于
widget的程序(即继承于QWidget类),在构造函数中添加如下代码:
setAttribute(Qt::WA_TranslucentBackground);
此时可以将窗体背景设置为透明,而要使QWS背景透明,则需添加如下代码:
1、添加头文件#include <QWSServer>;
2、在上面的构造函数中添加:QWSServer::setBackground(QColor(0,0,0,0));
至此,就可以达到目标功能需求了,上面的代码是在QT4.5环境下的,而使用到QWS时,只能在qvfb或嵌入式平台上运行才可以使用,而且
使用到的framebuffer要设置为ARGB8888,而不是ARGB1555,这样才能使功能生效,我们QT编译使用的是32位的 framebuffer,故使用ARGB8888。
参考网址:http://mypyg.blog.51cto.com/820446/172661
http://blog.csdn.net/fh400/archive/2010/05/17/5600458.aspx http://blog.csdn.net/goodlixueyong/archive/2010/10/18/5948486.aspx http://blog.csdn.net/lbsljn/archive/2009/12/29/5099590.aspx
widget的程序(即继承于QWidget类),在构造函数中添加如下代码:
setAttribute(Qt::WA_TranslucentBackground);
此时可以将窗体背景设置为透明,而要使QWS背景透明,则需添加如下代码:
1、添加头文件#include <QWSServer>;
2、在上面的构造函数中添加:QWSServer::setBackground(QColor(0,0,0,0));
至此,就可以达到目标功能需求了,上面的代码是在QT4.5环境下的,而使用到QWS时,只能在qvfb或嵌入式平台上运行才可以使用,而且
使用到的framebuffer要设置为ARGB8888,而不是ARGB1555,这样才能使功能生效,我们QT编译使用的是32位的 framebuffer,故使用ARGB8888。
参考网址:http://mypyg.blog.51cto.com/820446/172661
http://blog.csdn.net/fh400/archive/2010/05/17/5600458.aspx http://blog.csdn.net/goodlixueyong/archive/2010/10/18/5948486.aspx http://blog.csdn.net/lbsljn/archive/2009/12/29/5099590.aspx
相关文章推荐
- CentOS下Qt窗口透明效果失效,成黑色背景的问题
- QT应用之透明背景
- Qt 解决png图片转jpg图片透明背景变成黑色的问题
- CentOS下Qt窗口透明效果失效,成黑色背景的问题
- [重要] Cocos2dx 3.0 PageView ListView 在Android设备下背景显示为绿色的问题的解决方案
- android 控制对话框的宽度,背景透明的问题
- Activity中两个Fragment切换时背景透明问题
- 嵌入式 QT创建数据库以及数据库基本操作问题
- QT 实现子控件的透明,可以实现主窗口设置背景皮肤
- QT_PC实战常见问题_应用发布相关
- Qt发布应用,托盘图标在win7系统不能显示的问题
- 解决java压缩图片透明背景变黑色的问题
- 解决IE6png背景图片透明的问题
- 嵌入式Qt-4.8.6显示中文并且改变字体大小和应用自己制作的字体库
- Android应用启动页闪过短暂白色背景问题
- arm平台下,qt界面切换有绿色背景闪过
- MFC中图片背景透明色问题
- C++在嵌入式应用中的安全问题
- 解决ie6/7/8iframe背景透明的问题
- IE7 中 div 背景透明的问题