如何避免 Qt 快捷方式歧义(尤其是当快捷方式有不同的上下文时)?

     2023-03-30     46

关键词:

【中文标题】如何避免 Qt 快捷方式歧义(尤其是当快捷方式有不同的上下文时)?【英文标题】:How to avoid Qt shortcut ambiguity (especially when the shortcuts have different contexts)? 【发布时间】:2011-04-01 22:15:00 【问题描述】:

我有一个应用程序,它具有 Ctrl+S 作为文件菜单中保存操作的快捷方式。此操作具有 Qt::WindowShortcut 的默认快捷方式上下文。

在这个应用程序中有一个停靠窗口,其中包含一个也使用快捷键 Ctrl+S 的操作。这个快捷方式有上下文 Qt::WidgetShortcut。

窗口快捷方式工作正常。 (如果焦点在我提到的停靠窗口以外的任何地方,如果按下 Ctrl+S 就会执行。)

小部件快捷方式实际上不起作用。也就是说,如果窗口操作被禁用,则小部件 1 可以工作,因为没有歧义。但是如果两个动作都启用了,并且焦点在停靠窗口上,那么 Ctrl+S 什么都不做。

在我看来,期望在相同的活动快捷方式的情况下,如果一个具有比另一个更多的“本地”上下文,它将是执行的。我不认为有任何方法可以告诉 Qt 框架这就是我想要发生的事情?或者解决这个问题的一般方法?我可以简单地更改其中一个快捷方式,这样它们就不会模棱两可了,但是它们是可本地化的并且依赖于平台的,所以我不能保证不会出现其他类似的情况。

【问题讨论】:

您能否将触发小部件快捷方式的消息重定向到您想要的窗口? 我不确定我是否关注你。消息在正确的位置收到,只是最终生成的 QShortcutEvent 设置了其“模糊”标志,因此当每个 QAction 处理事件时,它不会发出其“激活”信号。 【参考方案1】:

我遇到过类似的情况,两个小部件具有相同的快捷方式(用于两个不同的操作),但只有一个被调用。我能够解决这个问题的唯一方法是 1.从两个小部件中的操作中删除快捷方式 2.在父窗口中使用快捷方式创建另一个动作 3. 从窗口处理程序调用适当的小部件处理程序。

【讨论】:

如何避免重定向输出符号“>”被当作命令行参数(可能在快捷方式中)

】如何避免重定向输出符号“>”被当作命令行参数(可能在快捷方式中)【英文标题】:Howtoavoidtheredirectoutputsign">"beingtakenascommandlinearguments(inashortcutmaybe)【发布时间】:2021-09-1901:45:30【问题描述】:我无法通过调用W... 查看详情

如何禁用 Qt Mainwindow 快捷方式适用于无模式对话框

】如何禁用QtMainwindow快捷方式适用于无模式对话框【英文标题】:HowtodisableQtMainwindowshortcutappliestothemodelessdialog【发布时间】:2016-02-2906:33:18【问题描述】:我创建了一个无模式的Qt对话框,其中包含一些单选按钮以及其他控件。... 查看详情

qt创建桌面快捷方式(代码片段)

windows下的快捷方式和开始菜单创建代码如下://建立桌面快捷方式QStringstrAppPath="C:/Windows/System32/notepad.exe";QStringstrDesktopLink=QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)+"/";strDesktopLink+="note 查看详情

在 Qt Creator 中应用代码更改的快捷方式是啥?

...时,我可以使用Alt+F10更改代码,而无需重新构建程序。如何在QtCreator中做到这一点?【问题讨论】:【参考 查看详情

qt创建快捷方式

1、当我第一次安装完QT后发现它并没有在桌面上给我创建快捷方式,使用起来很难受啊,于是寻找办法,终于找到一个懒办法:首先进入到上图的BIN目录下找到qtcreator文件,双击运行,然后系统就会在左侧菜单栏生成qt图标:然... 查看详情

如何将多个 QShortcuts 连接到 Qt 中的一个插槽?并找出插槽内是哪个快捷方式发出的?

】如何将多个QShortcuts连接到Qt中的一个插槽?并找出插槽内是哪个快捷方式发出的?【英文标题】:HowtoconnectmultipleQShortcutstooneslotinQt?Andfindoutinsidetheslotwhichshortcutemittedit?【发布时间】:2012-02-2102:22:34【问题描述】:可以传参数吗... 查看详情

如何使用 js 以编程方式为 android/ios 上的网站创建桌面快捷方式?

】如何使用js以编程方式为android/ios上的网站创建桌面快捷方式?【英文标题】:howtoprogrammaticallycreateadesktopshortcutforawebsiteonandroid/ioswithjs?【发布时间】:2014-12-1217:09:28【问题描述】:有没有办法让用户只用javascript或简单的链接... 查看详情

桌面快捷方式如何创建如何创建桌面快捷方式

参考技术A通过添加软件位置创建桌面快捷方式。1、在桌面右击点击“新建”,点击“创建快捷方式”。2、点击“浏览”,任意选择软件的图标,浏览需要创建的快捷方式。3、输入快捷方式的名称,点击完成,就成功创建了软... 查看详情

Qt 全局快捷键扩展劫持快捷键

】Qt全局快捷键扩展劫持快捷键【英文标题】:Qtglobalshortcutextensionhijacksshortcut【发布时间】:2020-02-0615:26:37【问题描述】:我正在使用这个Qt扩展来启用全局快捷方式(热键)https://github.com/falceeffect/UGlobalHotkey它工作得很好,但... 查看详情

如何在快捷方式窗口中显示快捷方式?

】如何在快捷方式窗口中显示快捷方式?【英文标题】:HowtoshowshortcutsinShortcutsWindow?【发布时间】:2021-02-0916:39:11【问题描述】:我需要一个ShortcutsWindow的简单工作示例(使用Gtkmm3),其中只有一个不使用Gtk::Builder的ShortcutsShortc... 查看详情

桌面快捷方式如何创建

参考技术A  通过添加软件位置创建桌面快捷方式。  1、在桌面右击点击“新建”,点击“创建快捷方式”。  2、点击“浏览”,任意选择软件的图标,浏览需要创建的快捷方式。  3、输入快捷方式的名称,点击完成... 查看详情

将剪切、复制、粘贴快捷方式更改为 Qt 5 中的自定义插槽

】将剪切、复制、粘贴快捷方式更改为Qt5中的自定义插槽【英文标题】:ChangetheCut,Copy,PasteshortcuttothecustomslotsinQt5【发布时间】:2015-02-2509:57:16【问题描述】:目前,我正在开发一个编辑器程序。我想为我的自定义函数分配三个... 查看详情

如何快速制作快捷方式? [关闭]

】如何快速制作快捷方式?[关闭]【英文标题】:HowcanImakeshortcutinswift?[closed]【发布时间】:2019-09-1406:25:05【问题描述】:我有一个按钮。点击时如何在我的iPhone主页上添加快捷方式???当再次点击该图标时,应用程序将再次... 查看详情

如何将网站添加到桌面快捷方式

...定义桌面快捷方式1.创建快捷方式2.自定义图标补充:如何将图片转为透明背景的.ico文件自定义桌面快捷方式1.创建快捷方式桌面右键——新建——快捷方式在快捷方式里输入想前往的网址,如https://www.icourse163.org/(... 查看详情

如何使用 PowerShell 创建快捷方式

】如何使用PowerShell创建快捷方式【英文标题】:HowtocreateashortcutusingPowerShell【发布时间】:2012-03-3021:43:12【问题描述】:我想用PowerShell为这个可执行文件创建一个快捷方式:C:\\ProgramFiles(x86)\\ColorPix\\ColorPix.exe如何做到这一点?... 查看详情

Qt Installer Framework - 在开始菜单中为所有用户创建快捷方式

】QtInstallerFramework-在开始菜单中为所有用户创建快捷方式【英文标题】:QtInstallerFramework-CreateshortcutinStartMenuforallusers【发布时间】:2014-07-0108:26:24【问题描述】:使用安装程序框架,我想为我的应用程序创建一个安装程序。该应... 查看详情

如何在android上正确创建快捷方式?

】如何在android上正确创建快捷方式?【英文标题】:Howtoproperlycreateashortcutonandroid?【发布时间】:2018-07-2123:56:31【问题描述】:我尝试了这段代码并在清单中添加了创建快捷方式权限,但仍然无法创建快捷方式。代码在主要活动... 查看详情

如何在 Swift 中删除添加的快捷方式?

】如何在Swift中删除添加的快捷方式?【英文标题】:HowtodeleteaddedShortcutsinSwift?【发布时间】:2018-11-1616:16:08【问题描述】:在我的应用中,我实现了Siri快捷方式。用户可以使用INUIAddVoiceShortcutButton添加快捷方式,这会显示INUIAdd... 查看详情