Qt 小妙招-01 鼠标穿透

鼠标穿透

记录原因:学习屏幕水印
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

如果出现undefined reference to symbol 'XShapeCombineRectangles'的错误,原因是未链接库,需要在.pro中添加以下带代码

LIBS += -lX11 -lXext

取消鼠标穿透

查资料的时候看到的,顺便记录一下

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值