Qt鼠标穿透 | 您所在的位置:网站首页 › 桌面歌词是什么意思 › Qt鼠标穿透 |
鼠标穿透的意思是所有鼠标键盘操作全部会穿透窗口到下方窗口,一种是穿透到父窗口,一种是穿透到桌面。 一、穿透到父窗口 当前窗口及子控件均不响应鼠标事件 setAttribute(Qt::WA_TransparentForMouseEvents, true);当前窗口透明区域不响应鼠标事件 setWindowFlags(Qt::FramelessWindowHint | Qt::Tool); setAttribute(Qt::WA_TranslucentBackground, true);自定义当前窗口区域响应鼠标事件 void QWidget::setMask(const QRegion ®ion)注意:如果设置的区域很复杂,效果可能会很慢。 二、穿透到桌面 鼠标点击穿透被广泛应用在桌面挂件程序上,目的是为了避免鼠标对窗体进行误操作。 Qt 并没有自带的方法可以实现该功能,所以需要调用系统本身的 API 来实现。这里介绍下 Windows 下和 Linux 下如何实现鼠标点击穿透。 很多 osd 桌面歌词程序经常用 #ifdef Q_OS_LINUX #include #endif #ifdef Q_OS_WIN #include #endif #ifdef Q_OS_LINUX XShapeCombineRectangles(QX11Info::display(), winId(), ShapeInput, 0, |
CopyRight 2018-2019 实验室设备网 版权所有 |