鼠标穿透
记录原因:学习屏幕水印
Qt实现屏幕水印的方法为创建一个透明的widget,在其中drawText,再将该窗口设为鼠标穿透。
XShapeCombineRectangles( QX11Info::display(),winId(),ShapeInput,0,0,
NULL,0,ShapeSet,YXBanded);
这一行代码就可以将窗口设置为鼠标穿透。
使用这行代码需要:
#include <QX11Info>
#include <X11/extensions/shape.h>
需要在.pro文件中
QT += core gui x11extras
如果出现Project ERROR: Unknown module(s) in QT: x11extras
的错误,可能是因为未安装x11extras模块,执行以下shell命令即可
sudo apt install libqt5x11extras5-dev
取消鼠标穿透
查资料的时候看到的,顺便记录一下
XRectangle* myrect = new XRectangle;
myrect->x = 0;
myrect->y = 0;
myrect->width = width();
myrect->height = height();
XShapeCombineRectangles(QX11Info::display(), winId(), ShapeInput, 0, 0, myrect,1,ShapeSet,YXBanded);
转发请注明出处(雨后星辰):http://www.cnblogs.com/AfterTheRainOfStars/p/4030042.html
转自https://blog.csdn.net/weixin_34162228/article/details/93531304?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164439865316781683940792%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164439865316781683940792&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-93531304.first_rank_v2_pc_rank_v29&utm_term=XShapeCombineRectangles&spm=1018.2226.3001.4187