Qt5 背景透明显示问题
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 解决了背景透明问题
没玩过,准备学习
