0
点赞
收藏
分享

微信扫一扫

Qt 小妙招-01 鼠标穿透

求索大伟 2022-02-09 阅读 122

鼠标穿透

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

举报

相关推荐

0 条评论