纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

Qt全局热键实现

10月26日 星宿房投稿
  监听系统原生事件
  Qt作为跨平台的框架,实现的功能是在每个平台都共有的部分,而有的功能可能由于某些原因不能跨平台就没有,这时候就需要调用系统原生的API,比如全局热键的功能、电池休眠事件监听等。窗口的原生事件
  窗口的原生事件可以通过重载QWidget::nativeEvent(constQByteArrayeventType,voidmessage,longresult)来实现。在函数中返回true会停止传递,如果返回false会继续由Qt处理事件。当窗口有句柄的时候,触发了平台原生的事件就会调用此函数。由eventType标识本机平台事件,这些事件的参数在message中传递。不同平台的eventType、message如下:
  Platform
  EventTypeIdentifier
  MessageType
  ResultType
  Windows
  windowsgenericMSG
  MSG
  LRESULT
  macOS
  NSEvent
  NSEvent
  XCB
  xcbgenericeventt
  xcbgenericeventt
  下面举个例子,比如当前窗口在做一些操作,笔记本合上盖子进入休眠,要监听电池相关的事件:boolMainWidget::nativeEvent(constQByteArrayeventType,voidmessage,longresult){if(eventTypewindowsgenericMSGeventTypewindowsdispatcherMSG){MSGmsgstaticcastMSG(message);if(msgmessageWMPOWERBROADCAST){if(msgwParamPBTAPMSUSPEND){qDebug(系统休眠);}elseif(msgwParamPBTAPMRESUMESUSPENDmsgwParamPBTAPMRESUMEAUTOMATIC){qDebug(系统唤醒);}}}returnQWidget::nativeEvent(eventType,message,result);}应用级原生事件
  像全局热键这样的事件是应用级别的,事件的监听就要放在app上。通过继承QAbstractNativeEventFilter来实现自己的原生事件过滤器并安装到app上即可。当有原生事件触发后就会调用事件过滤器的virtualboolnativeEventFilter(constQByteArrayeventType,voidmessage,long)函数。
  【领QT开发教程学习资料,点击下方链接莬费领取,先码住不迷路】
  点击领取Qt开发(视频教程文档代码项目实战)
  要处理热键的话重写函数如下:boolMyWinEventFilter::nativeEventFilter(constQByteArrayeventType,voidmessage,long){if(eventTypewindowsgenericMSG){MSGmsgstaticcastMSG(message);if(msgmessageWMHOTKEY){判断是否为指定热键按下}}}热键的注册
  上面处理好了事件发生后的步骤,还需要告诉系统哪些算是热键。注册用到的原生API有:BOOLRegisterHotKey(HWNDhWnd,响应该热键的窗口句柄,由于是应用级的,可以不传Intid,该热键的唯一标识UINTfsModifiers,该热键的辅助按键,Ctrl、Alt、ShiftUINTvk该热键的键值);BOOLUnregisterHotKey(HWNDhWnd,响应该热键的窗口句柄,同不传Intid该热键的唯一标识);
  注册时按键的虚拟码可以去官网查询。
  注册按键的函数一般都是字符串的形式,可以自己写个转换函数,也可以使用Qt的QKeySequence先得到热键的Qt的键盘码,再映射到windwos的虚拟码。具体实现
  具体代码就不贴了,在Github上有个封装好各个平台的全局热键的仓库,QHotkey
  windows相关实现在QHotkeyQHotkeyqhotkeywin。cpp中,里面就是调用RegisterHotKey来实现的。
投诉 评论 转载

赵雅芝庆祝69岁大寿,穿超短裤黑丝袜,一双长腿又细又直近日是不老女神赵雅芝的69岁大寿,她也晒出了儿子为自己庆生的温馨一幕。赵雅芝戴着时尚的帽子,穿着玫红色外套和超短裤,下面搭着黑色丝袜和靴子,整体造型十分复古减龄。虽……欧冠后遗症8。5亿豪门遭绝平巴黎10登顶虽然英超联赛本轮全部延期,但9月10日晚间到9月11日凌晨,四大联赛还是有多支豪门登场亮相,巴黎圣日耳曼继续高奏凯歌,拜仁慕尼黑则是再次战平。拜仁22斯图加特德甲第六轮的……乔治今天球队防守很差我们没有互相帮助北京时间10月24日,今日快船主场不敌太阳,收获赛季首败,赛后快船球员保罗乔治接受了采访。乔治表示,球队今天有无球的防守都很差。这种表现是不行的我们没有互帮互助。乔治说道……如果没有杨立新的配音,张国荣的程蝶衣还会成功吗?关于电影《霸王别姬》的话题有很多,先说两个被以讹传讹的吧。一个是网络传闻《霸王别姬》是陈凯歌父亲代拍的。这个传闻估计一开始就是一个段子,估计是有人吐槽陈凯歌那些不怎……与科技共生中国游戏社会价值又迈出一步与科技共生与如火如荼的游戏出海相对应,游戏的社会责任和社会价值同样在2021年迎来跃进。在用户的传统观念中,游戏更多价值的认知更多集中在功能游戏以及文化传播上,然而……Qt全局热键实现监听系统原生事件Qt作为跨平台的框架,实现的功能是在每个平台都共有的部分,而有的功能可能由于某些原因不能跨平台就没有,这时候就需要调用系统原生的API,比如全局热键的功能……卵泡监测最佳时间,加油备孕兔宝宝卵泡监测最佳时间,加油备孕兔宝宝PS:排卵试纸不是精准的监测方式,想要高效备孕的姐妹还是选择B超监测卵泡女性的月经周期一般为2830,优势卵泡从月经周期的第68开始……销量持续下滑,遥遥领先也扭转不了华为造车的败局3月份最后一周汽车上险量出炉,华为AITO问界仅676辆,环比上周下跌7。1。去年10月是问界的巅峰,销量高达12038辆,12月销量10180辆。今年却跌得有点猝不及防……最佳入手时机!ampampquot双十二ampampquot文杨枝甘露导言2022年终已至,黑色星期五购物节如期而至,双十二、圣诞采购季也即将到来,在这游戏大作云集的时节,相信许多学生党小伙伴们都已摩拳擦掌,跃跃欲试准备入手一台性……湖南有名的6道特色湘菜,酸辣爽口,色香味俱全,开胃又下饭作为八大菜系之一的湘菜,距今已有上千年的历史,受到地域、人文等多种因素的影响,形成了自己独有的风味。湘菜的制作非常精细,辣味烈性一相逢,便胜却人间无数,口味以香辣为主,菜品的配……意外猝死的明星有人死后多日才被发现,有人亿万财产无人继承俗话说人生无常,谁也不知道明天和意外哪个会先来,圈内的明星们也是如此。由于长期的高强度工作,很多明星的身体状况都不容乐观,甚至有些人年纪轻轻就不幸猝死。下面,就来盘……LOLGEN五年征程终夺联赛首冠,打野Peanut荣获FMV8月28日下午,2022LCK夏季总决赛圆满落下帷幕,常规赛霸主Gen。G战队在决赛中用无可置疑的强势发挥30击败了春季赛卫冕冠军T1战队夺得冠军。这是Gen。G战队队史上的首……
R星人事地震GTA首席编剧离职喜大普奔!Win10全新大改版确定坐等升级天玑9000实现对高通骁龙8Gen1的超越真的是奢望吗?欧界除了凑够300字这6种讨巧微信都会封杀超好用的打车APP下架了官方紧急回应Chrome72发布下载和崩溃闪退说再见复出仍需时日维金斯确认无缘今日战黄蜂Win10新日历曝光美观易用值得好评游戏健身新选择?NS发布新款体感控制器散文集秋之意,情之浓国内音质最好的曲库上线CD级无损起步回顾大S过往婚纱造型,这次穿小礼服甜嫁具俊晔
药物流产后多久能同房云端查微信聊天记录吗(微信怎么看聊天记录)梨花村的故事之黑大褂和他的儿子周汝成忠臣义士梅之焕医学考研,哪些人容易上岸?fitness是什么意思fitness英语是什么意思可视对讲系统中各组成部分的功能深夜之思!孤!想知道古代美女是怎么美容养颜的吗不看就了科普下文言文句式怎么判断分手后最成熟的做法iPhone13Pro系列独占激光雷达扫描仪普通版无缘

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形