我有一个应用程序具有Ctrl + S作为文件菜单中的保存操作的快捷方式。此操作具有Qt :: WindowShortcut的默认快捷环境。如何避免Qt快捷模糊(特别是当快捷方式有不同的上下文时)?
在这个应用程序中有一个停靠窗口,同时使用快捷键Ctrl + S的动作。这个快捷方式有上下文Qt :: WidgetShortcut。
窗口快捷方式工作正常。 (当焦点在除了我提到的对接窗口之外的任何地方时,如果按下Ctrl + S,则执行它。)
小部件快捷方式并不真正起作用。也就是说,如果窗口操作被禁用,那么这个窗口小部件就起作用了,因为没有歧义。但是,如果两项操作均已启用,并且焦点在对接窗口上,则Ctrl + S将不执行任何操作。
在我看来,如果期望在相同的主动快捷键的情况下,如果一个人拥有比另一个更多的“本地”上下文,那么它就是执行的人。我不认为有什么办法可以告诉Qt框架,那就是我想要发生的事情吗?或者通用的方法来解决这个问题?我可以简单地改变其中一个快捷方式,使它们不含糊,但这些快捷方式是可本地化的和依赖平台的,所以我不能保证不会出现其他类似的情况。
您是否能够将触发widgetshortcut的消息重定向到您想要的窗口? – 2011-04-01 22:43:25
我不知道我跟着你。消息在正确的位置被接收,只是最终生成的QShortcutEvent设置了“模糊”标志,所以当每个QAction处理事件时,它都不会发出它的“激活”信号。 – Owen 2011-04-01 22:52:27