gpt4 book ai didi

c++ - QTextEdit 收到控制键不传递到主窗口

转载 作者:行者123 更新时间:2023-11-28 06:59:28 32 4
gpt4 key购买 nike

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

我遇到的问题是,当 QTextEdit 小部件具有焦点时,这些按键似乎被小部件消耗掉了,而从未被窗体看到。有趣的是,这些组合键在 QTextEdit 中什么都不做。

我怎样才能让 QTextEdit 忽略与它没有关联的组合键?或者,我如何在 Qt 中实现我的目标?

最佳答案

无论哪个小部件拥有键盘焦点,名义上都会消耗所有键盘事件。没有“未处理”键盘事件的概念。 Qt 的键盘事件语义不是那样工作的。

您需要使用QShortcut。在内部,它充当击键序列的应用程序范围的事件过滤器,它绑定(bind)到 QApplication 的私有(private)实现中。您执行此操作的唯一其他方法是充当作用于击键事件的应用程序范围的事件过滤器。

关于c++ - QTextEdit 收到控制键不传递到主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22698598/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com