当前位置: 代码迷 >> QT开发 >> Qt下,怎么屏蔽掉textEdit的ctrl+z快捷键
  详细解决方案

Qt下,怎么屏蔽掉textEdit的ctrl+z快捷键

热度:427   发布时间:2016-04-25 02:57:40.0
Qt下,如何屏蔽掉textEdit的ctrl+z快捷键
我们的软件,设置了快捷键ctrl+z是个撤销操作,但是,当焦点位于一个textEdit的时候,按ctrl+z就是撤销那个textEdit里的文本,而不执行软件的撤销命令.
有人说捕获textEdit的keydown消息,屏蔽,这样的话,软件也接收不到了.怎么办呢?
------解决思路----------------------
写一个继承类,QMytextEdit,内含屏蔽Ctrl Z,甚至也可以收到Ctrl Z转发到全局实现你做的Ctrl Z
------解决思路----------------------
http://www.qtcentre.org/archive/index.php/t-12440.html

	ui.textEdit->setShortcutEnabled(0, false);

------解决思路----------------------
ui.textEdit->releaseShortcut

------解决思路----------------------
引用:
Quote: 引用:

写一个继承类,QMytextEdit,内含屏蔽Ctrl Z,甚至也可以收到Ctrl Z转发到全局实现你做的Ctrl Z


void CTextEdit::keyPressEvent( QKeyEvent *e )
{
QApplication::postEvent(this->parent(), e);
}
在继承的textedit里给主窗体发消息,直接就卡死了.
http://www.qtforum.org/article/14293/qtextedit-how-to-turn-off-keys-intercepting-like-ctrl-z.html
------解决思路----------------------
给textEdit安装事件过滤器,
然后   if (keyEvent->modifiers() == Qt::ControlModifier&& keyEvent->key() == Qt::Key_Z) {
                                                                    return true;
                    } 
  相关解决方案