QT应用之透明背景

 时间:2026-02-15 17:00:50

在嵌入式平台,我们使用的QT会是以QWS方式运行,即会先运行QWSServer,再运行实际的窗体,在该情况下,默认QWS背景会是绿色的,而在嵌入式上,很多方案都会将video和graphic层分开,两层的层叠也是可调的,当需要在video上面做一些控制图标等,此时就需要将gfx调到vid之上,此时就需要将运行于gfx的qt程序设置背景透明,共需要设置两处:一处是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。

  • phpstudy怎么使用命令行登录mysql
  • 如何开启Centos6.4系统的SSH服务
  • 访问隔离用户模式FTP服务器
  • intellij idea2018安装教程
  • mysqlworkbench怎么建立数据库模型, 怎么建表
  • 热门搜索
    身怀六甲是什么意思 什么是散文 京东自营是什么意思 什么的歌声 mps是什么意思 失足什么意思 孔雀的尾巴像什么 排卵期在什么时候 爱因斯坦发明了什么 喉咙有痰是什么原因造成的