一、设置鼠标穿透功能:
1、先设置鼠标穿透、无边框、透明,其中鼠标穿透属性要放在第一个位置设置:
this->setAttribute(Qt::WA_TransparentForMouseEvents, true);
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
this->setAttribute(Qt::WA_TranslucentBackground, true);
2、绘制一下透明层的颜色:
void DrawingBoard::paintEvent(QPaintEvent *)
{
//设置窗体透明层颜色
QPainter painter(this);
painter.fillRect(rect(), QColor(0, 0, 0, 1));
}
这样设置完后,鼠标是可以穿透透明层的。
另外如果是单纯的透明、无边框窗口,不设置鼠标穿透属性,鼠标也是可以穿透的,如下面代码:
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
this->setAttribute(Qt::WA_TranslucentBackground, true);
二、同上面类似设置鼠标不能穿