QTextEdit接收控制键未传递到主窗口



我有一个QTextEdit在我的QMainWindow。我已经覆盖了我的主窗口keyPressEvent方法,并在那里放了一些热键处理程序(即:Ctrl+J, Ctrl+K)。这些热键对于应用程序是全局的。

我遇到的问题是,当QTextEdit小部件有焦点时,这些按键似乎被小部件消耗,窗体从未看到。有趣的是,这些键组合在QTextEdit中没有任何作用。

我怎么能有QTextEdit忽略键组合,它没有相关的行为?或者,我如何在Qt中完成我的目标?

具有键盘焦点的小部件名义上将消耗所有键盘事件。没有"未处理"键盘事件的概念。Qt的键盘事件语义不是这样工作的。

您需要使用QShortcut。在内部,它充当击键序列的应用程序范围的事件过滤器,它被绑定到QApplication的私有实现中。唯一的另一种方法是充当应用程序范围的事件过滤器,对击键事件起作用。

相关内容

  • 没有找到相关文章

最新更新