Qt下,如何屏蔽掉textEdit的ctrl+z快捷键

oN5GrzoN 2015-04-03 04:40:59
我们的软件,设置了快捷键ctrl+z是个撤销操作,但是,当焦点位于一个textEdit的时候,按ctrl+z就是撤销那个textEdit里的文本,而不执行软件的撤销命令.
有人说捕获textEdit的keydown消息,屏蔽,这样的话,软件也接收不到了.怎么办呢?
...全文
640 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnqt 2015-04-03
  • 打赏
  • 举报
回复
给textEdit安装事件过滤器, 然后 if (keyEvent->modifiers() == Qt::ControlModifier&& keyEvent->key() == Qt::Key_Z) { return true; }
Jenf_Mu 2015-04-03
  • 打赏
  • 举报
回复
引用 5 楼 oN5GrzoN 的回复:
[quote=引用 1 楼 muggle222 的回复:] 写一个继承类,QMytextEdit,内含屏蔽Ctrl Z,甚至也可以收到Ctrl Z转发到全局实现你做的Ctrl Z
void CTextEdit::keyPressEvent( QKeyEvent *e ) { QApplication::postEvent(this->parent(), e); } 在继承的textedit里给主窗体发消息,直接就卡死了.[/quote]http://www.qtforum.org/article/14293/qtextedit-how-to-turn-off-keys-intercepting-like-ctrl-z.html
oN5GrzoN 2015-04-03
  • 打赏
  • 举报
回复
引用 1 楼 muggle222 的回复:
写一个继承类,QMytextEdit,内含屏蔽Ctrl Z,甚至也可以收到Ctrl Z转发到全局实现你做的Ctrl Z
void CTextEdit::keyPressEvent( QKeyEvent *e ) { QApplication::postEvent(this->parent(), e); } 在继承的textedit里给主窗体发消息,直接就卡死了.
oN5GrzoN 2015-04-03
  • 打赏
  • 举报
回复
引用 3 楼 Jenf_Mu 的回复:
ui.textEdit->releaseShortcut
怎么知道ctrl+z快捷键的ID是哪个?
Jenf_Mu 2015-04-03
  • 打赏
  • 举报
回复
ui.textEdit->releaseShortcut
Jenf_Mu 2015-04-03
  • 打赏
  • 举报
回复
http://www.qtcentre.org/archive/index.php/t-12440.html
	ui.textEdit->setShortcutEnabled(0, false);
muggle222 2015-04-03
  • 打赏
  • 举报
回复
写一个继承类,QMytextEdit,内含屏蔽Ctrl Z,甚至也可以收到Ctrl Z转发到全局实现你做的Ctrl Z

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧