现象
QWS背景透明了以后就会出现鼠标移动会有阴影现象,测试代码如下
#include <QApplication>
#include <QDialog>
#include <QWSServer>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog dialog;
QWSServer::setBackground(QColor(0, 0, 0, 0));
dialog.setStyleSheet("background-color:transparent;");
dialog.show();
return a.exec();
}
效果如下:
可以看到,移动鼠标会出现阴影现象,并且鼠标感觉也不是标准的鼠标,就像是一个正方形
解决办法:
隐藏QWSServer鼠标,方法如下
#include <QApplication>
#include <QDialog>
#include <QWSServer>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QDialog dialog;
QWSServer::setBackground(QColor(0, 0, 0, 0));
QWSServer::setCursorVisible(FALSE);
dialog.setStyleSheet("background-color:transparent;");
dialog.show();
return a.exec();
}
现在就可以看到鼠标移动非常的干净,不会有什没阴影
原因分析:
出现这种显现,我估计是QWSServer,即QT服务器也有一个鼠标cursor,因此会出现阴影现象