微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > Qt5 背景透明显示问题

Qt5 背景透明显示问题

时间:10-02 整理:3721RD 点击:
qt程序在arm linux上面跑
qt4 可以通过 QWSServer::setBackground(QColor(0, 0, 0, 0)) 设置背景透明,
但是qt5里面没有这个了,现在程序运行到qt5去掉这段代码后,在arm 上面跑背景是为黑色的,
qt5 应该怎么设置才能让背景透明。

帮助顶,顶起

已经解决,在arm上用的是linuxfb,得更改两个文件的内容。
1:
  在 qtbase\src\plugins\platforms\linuxfb\qlinuxfbscreen.cpp中将
mBlitter->drawImage(rects, *mScreenImage, rects);
更改为
mBlitter->setCompositionMode(QPainter::CompositionMode_Source);
mBlitter->drawImage(rects, *mScreenImage, rects);
mBlitter->setCompositionMode(QPainter::CompositionMode_SourceOver);
2:qtbase\src\platformsupport\fbconvenience\qfbscreen.cpp中将
mCompositePainter->fillRect(rect, Qt::black);
更改为
mCompositePainter->setCompositionMode(QPainter::CompositionMode_Source);
mCompositePainter->fillRect(rect, Qt::transparent);
mCompositePainter->setCompositionMode(QPainter::CompositionMode_SourceOver);
本更改的来源于http://www.ebaina.com/bbs/thread-7956-1-1.html

已经解决,在arm上跑用的是linuxfb平台,需要更改两个地方。
1. 在qtbase\src\platformsupport\fbconvenience\qfbscreen.cpp中将
mCompositePainter->fillRect(rect, Qt::black);
更改为
mCompositePainter->setCompositionMode(QPainter::CompositionMode_Source);
mCompositePainter->fillRect(rect, Qt::transparent);
mCompositePainter->setCompositionMode(QPainter::CompositionMode_SourceOver);
2. 在qtbase\src\plugins\platforms\linuxfb\qlinuxfbscreen.cpp中将
mBlitter->drawImage(rects, *mScreenImage, rects);
更改为
mBlitter->setCompositionMode(QPainter::CompositionMode_Source);
mBlitter->drawImage(rects, *mScreenImage, rects);
mBlitter->setCompositionMode(QPainter::CompositionMode_SourceOver);
解决来源于 http://www.ebaina.com/bbs/thread-7956-1-1.html

我来支持一下呵呵!嵌入式培训www.arm8.net

qt5.6.1 解决了背景透明问题

没玩过,准备学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top