首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Qt应用程序中覆盖系统范围(Windows)键快捷键

在Qt应用程序中覆盖系统范围(Windows)键快捷键
EN

Stack Overflow用户
提问于 2019-09-01 10:59:04
回答 1查看 579关注 0票数 0

Ctrl+Escape是打开主系统菜单的全局窗口快捷方式。但是我希望我的Qt应用程序在不触发Windows主菜单的情况下使用这个快捷方式。我知道在一般情况下重写系统快捷键可能是个坏主意,但是我想使用这个快捷方式是一个非常有限的用例。

这个用法如下所示。我有一个弹出窗口,其中包含几行或几项。此窗口由Ctrl+Tab打开,当用户持有Ctrl并继续按Tab时,当前行将被循环通过。当用户释放Ctrl时,当前行用于某些操作.但有时用户按Ctrl+Tab,然后意识到他不想继续。他通常一边按住Escape,一边握着Ctrl。然后触发Windows系统菜单,普通用户感到困惑,胆大妄为的用户生气。这是件坏事。换句话说,当用户按Ctrl+Escape时,我希望能够关闭弹出窗口。怎么做?甚至有可能吗?

如果我使用此快捷方式编写代码,就像使用任何其他快捷方式一样,它不起作用,并且总是触发Windows主菜单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-01 19:50:16

据我所知,如果基础窗口系统拦截了Qt,那么Qt通常不会接收关键事件。例如,即使是QtCreator也不能覆盖整个系统的快捷方式。

这个问题几乎是:C++/Qt全局热键的重复。

虽然这个问题是专门要求在隐藏/背景应用程序中捕获快捷方式,但我认为基本概念是相同的--在窗口系统处理之前捕获快捷键。

从这个答案来看,UGlobalHotkey似乎相当不错,如何在Qt应用程序中使用系统范围的热键博客文章可能对您的有限用例有用(但请阅读博客文章中关于修复示例的评论)。

还发现:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57745399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档