我有一个简单的应用程序,只有一个 QPlainTextEdit,与这里的 Qt 示例基本相同:
http://qt-project.org/doc/qt-5.1/qtwidgets/mainwindows-application.html
当我按下 Ctrl+Z 时,它调用撤消。当我按 Ctrl+A 时,它会选择所有文本。这没关系。
但是当我按下菜单中未定义的Ctrl+E或Ctrl+R时,字符“e”和“r”将出现在QSimpleTextEdit中。
我该如何防止这种情况发生?如何“过滤”已定义为菜单快捷方式的按键并使其继续工作,并“防止”那些未定义为菜单快捷方式的按键出现在编辑中?
最佳答案
有两个选项:
1) 创建一个子类并重新实现keyPressEvent()
2) 创建一个 eventFilter 并使用 installEventFilter()
(参见 http://qt-project.org/doc/qt-5.0/qtcore/qobject.html#installEventFilter)
关于c++ - 防止关键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19295292/