【问题标题】:Block application level shortcuts in shortcut editor textbox在快捷方式编辑器文本框中阻止应用程序级快捷方式
【发布时间】:2015-02-06 00:45:37
【问题描述】:

我需要让用户在我的应用程序的首选项对话框中更改我的应用程序中某些操作的键盘快捷键。我将 QLineEdit 子类化为创建一个接受组合键并显示组合的控件(例如:如果用户按下 ctrl 和 I,行编辑将显示 Ctrl + I)。

如果我在行编辑中输入已经存在的应用程序级操作的快捷方式,则行编辑不会收到该按键,而是触发相关操作。这种行为对我来说是可以接受的,但问题是,这种行为与一些特殊的快捷键不一致,例如 Ctrl + C, Ctrl + A 等。如果我已经为某个操作分配了这样的特殊快捷方式并尝试为其他操作设置相同的快捷方式,则行编辑确实会收到事件(与其他快捷方式不同)并且之前分配的操作不会不要被触发。

是否有人知道禁用应用程序级快捷方式的方法,以便我可以在行编辑中接收事件并自己检查重复的快捷方式?或者任何人都可以建议一种方法来始终如一地处理用户输入已经存在的快捷方式到其他快捷方式的场景?

【问题讨论】:

    标签: c++ qt shortcut hotkeys


    【解决方案1】:

    您根本不应该将QLineEdit 用于此目的。 Qt 有特殊的小部件可以做到这一点。它是QKeySequenceEdit。试试这个小部件。

    http://qt-project.org/doc/qt-5/qkeysequenceedit.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 1970-01-01
      相关资源
      最近更新 更多