c++ - 如何重新定义内置键盘快捷键的行为?

标签 c++ qt keyboard-shortcuts

我正在尝试为 QTextEdit 对象重新实现复制行为。单击“复制”按钮时,我创建的自定义上下文菜单按预期工作,但 Ctrl + C 未正确处理。由于上下文菜单没有任何问题,我将省略该部分代码。

// Create a text edit box for text editing
QTextEdit text_edit_box = new QTextEdit(getBaseWidget());

text_edit_copy_action = new QAction(QString("Copy"), getBaseWidget());
text_edit_copy_action->setShortcut(QKeySequence::Copy);

// Add custom copy action to the text edit box to ensure Ctrl+C uses our copy
// implementation
text_edit_box->addAction(text_edit_copy_action);

当我将快捷方式设置为未使用的组合键(例如,Ctrl + Q)时,它工作正常。似乎 Ctrl + C 的处理方式有所不同,因为它是“内置的”。

最佳答案

拷贝不是虚拟的,所以这可能会有问题。复制是通过私有(private)文本控制 API 处理的,并且不容易访问。最好的方法可能是为文本编辑安装一个事件处理程序,并在将复制键事件传递给文本控件 processEvent 处理程序之前拦截它 - 这应该允许您自己的操作正确触发。

关于c++ - 如何重新定义内置键盘快捷键的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/918668/

相关文章:

xcode4 - Xcode 4助手编辑器切换键

c++ - 如何在 gdb 中配置 STL View ?

c++ - 更有效地遍历原始视频

c++ - QRegExp 去除换行符和多个空格

c++ - QMessageBox消失

C++ - 基本的 Qt 问题

javascript - 如何使用 javascript 通过快捷方式单击按钮而不导致页面重新加载

C++:什么是 std::vector<I> mask(n_col, -1);意思是?

c++ - 如何创建带有自定义标题的 qtablewidget

r - %*% 和 %o% 运算符有键盘快捷键吗?