linux下鼠标穿透和取消穿透--linux小白,大神无视
最近在用qt写一个跨平台的软件,因为设置了无边框,并且我自己给程序窗口加了阴影,阴影范围又比较大
所以必须给阴影区域加上鼠标穿透才能有更好的体验。
上网查了一下,在windows下使用SetWindowLong就行
在linux下的搜了好久也找到了一个方法
就是XShapeCombineRectangles(QX11Info::display(), winId(), ShapeInput,
0,0, NULL, 0, ShapeSet, YXBanded);(需要#include <X11/extensions/shape.h>)
我试了一下,的确有效,但是问题来了,设置穿透后怎么取消呢?
这个问题我又搜了很久,但是这次没那么幸运了,在百度和谷歌上都没有搜到相关问题
对于我这个linux小白来说可愁坏了
但是工夫不负有心人,试了一晚上,终于对这个函数有一点了解了,取消鼠标穿透的方法也试出来了。
下面就分享给大家
转发请注明出处(雨后星辰):http://www.cnblogs.com/AfterTheRainOfStars/p/4030042.html
XRectangle* myrect = new XRectangle;
myrect->x = ;
myrect->y = ;
myrect->width = width();
myrect->height = height();
XShapeCombineRectangles(QX11Info::display(), winId(), ShapeInput, , , myrect,,ShapeSet,YXBanded);
在设置鼠标穿透的时候给函数传的第六个参数为NULL
查看函数的定义发现这个参数是XRectangle*类型的
下面直接说结论,当设置鼠标穿透的时候,如果这个参数为NULL,那整个窗口都将被穿透
然后第七个参数就是控制是设置穿透和取消穿透(取消为1)的了
但是,取消穿透的时候必须设置区域。不然设置第七个参数为1的时候程序会执行出错
我先前的误区就是在设置完第七个参数之后程序闪退,就一位那个参数不能动,后面就一直实验其他参数,但是都不行
后来再看一个博客的时候灵机一动就试了试将第六个参数的NULL改为一个XRectangle*对象,然后将第七个参数改为1就没有问题了。
这就是我解决问题的过程,希望能帮到大家。
linux下鼠标穿透和取消穿透--linux小白,大神无视的更多相关文章
- linux下sort命令使用详解---linux将文本文件内容加以排序命令
转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...
- Linux下不借助工具实现远程linux服务器上传下载文件
# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## ...
- 刚下了VS2010不会用,求大神指点迷津
刚下了VS2010不会用,求大神指点迷津 [菌菌][C语言MOOC]第七周计算分数精确值(10分) thinkphp3.1Calltoamemberfunctionget()onnull java提示 ...
- .netcore在linux下使用P/invoke方式调用linux动态库
http://www.mamicode.com/info-detail-2358309.html .netcore下已经实现了通过p/invoke方式调用linux的动态链接库(*.so)文件 1 ...
- Linux下鼠标滚轮速度调整
安装imwheel 于home下创建.imwheelrc gedit ~/.imwheelrc 在.imwheelrc中粘贴以下内容 ".*" None, Up, Button4, ...
- linux下patch命令使用详解---linux打补丁命令
http://blog.csdn.net/pashanhu6402/article/details/51849354 语 法:patch [-bceEflnNRstTuvZ][-B <备份字首字 ...
- Linux 下使用 killall 命令终止进程的 8 大用法
Linux 的命令行提供很多命令来杀死进程.比如,你可以向 kill 命传递一个PID来杀死进程:pkill 命令使用一个正则表达式作为输入,所以和该模式匹配的进程都被杀死. 但是还有一个命令叫 ki ...
- Linux下使用shell实现上传linux下某个目录下所有文件到ftp
首先我们需要搞清楚单个文件怎么上传,把这个单文件上传到ftp上的实现命名为一个:upload_to_ftp_command.sh 之后,需要弄清楚怎么实现遍历一个目录下的所有文件的,把这个遍历某个目录 ...
- 100 道 Linux 笔试题,能拿 80 分就算大神!
本套笔试题共100题,每题1分,共100分.(参考答案在文章末尾) 1. cron 后台常驻程序 (daemon) 用于: A. 负责文件在网络中的共享 B. 管理打印子系统C. 跟踪管理系统信息和错 ...
随机推荐
- Xcode插件开发案例教程
引言 在平时开发过程中我们使用了很多的Xcode插件,虽然官方对于插件制作没有提供任何支持,但是加载三方的插件,默认还是被允许的.第三方的插件,存放在 ~/Library/Application Su ...
- contentSize、contentInset和contentOffset 是 scrollView三个基本的属性区别和使用
contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. contentSize: 其实就是scrollview可以滚动的区域,比如fra ...
- C#中获取音频文件时长
1.在项目中添加引入:COM组件的Microsoft Shell Controls And Automation 2.在引用中找到Shell32,点击右键,在属性中将“嵌入互操作类型”的值改为“fal ...
- 查看电脑已经连过的wifi密码
用下面两条命令可以完成 查看当前系统已经保存的网络 netsh wlan show profiles 查看wifi指定密码 netsh wlan show profiles name="wi ...
- Spring-1-A Post Robot(HDU 5007)解题报告及测试数据
Post Robot Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K Problem Description ...
- 一只代码小白git托管路上的二三事
[经验]一只代码小白git托管路上的二三事 写在前面的话 寒假的时候,娄老师给我们布置了代码托管的作业,并要求把托管地址发给学委.因假期的时候没有带电脑回家,所以只是在手机上草草注册了,也稀里糊涂就将 ...
- JS正则表达式从入门到入土(10)—— 字符串对象方法
字符串对象方法 search方法 String.prototype.search(reg) search方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,方法返回第一个匹配结果的 ...
- [转]将Eclipse设置为黑色主题 方式一
将Eclipse设置为黑色主题 觉得黑色的主题&配色很高大上,于是花了点时间实践出下面一种方法. 修改代码编辑区配色 修改整个软件主题 先上成果图: 但是进度条依旧是白色的,不知道怎么弄了╮( ...
- 【分库分表】sharding-jdbc—解决的问题
一.遇到的问题 随着互联网技术和业务规模的发展,单个db的表里数据越来越多,sql的优化已经作用不明显或解决不了问题了,这时系统的瓶颈就是单个db了(或单table数据太大).这时候就涉及到分库分表的 ...
- 《Java程序设计》实验1实验报告
20145318 <Java程序设计>实验1实验报告 实验题目 通过对500个数据进行操作,实现快速排序.选择排序.直接插入排序算法时间复杂度的比较:并在排序数据中快速查找某一数据,给出查 ...