QT应用之透明背景_嵌入式freambuffer_QWS背景淡绿色问题

在嵌入式平台,我们使用的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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值