c++ - 防止关键事件

标签 c++ qt events

我有一个简单的应用程序,只有一个 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/

相关文章:

c++搜索字符串列表的特定字符串

c++ - std::function 和 std::mem_fn 有什么区别

Qt:设置 QMainWindow 的大小

qt - QT VC CMake编译器路径

c++ - 在 -fsanitize=address 下运行时如何抑制 LeakSanitizer 报告?

c++ - 是否有任何惯用的显式使用 mutex::lock() 或 unlock()?

c++ - ECG 风格的实时 QCustomPlot

ios - 数据从增强型电子商务的数据层中的先前事件 append

.net - 将信息从引用的类传递回调用表单

C# - Winforms - 事件流循环