qt html 换行表示,QTextEdit实现快捷键换行

Qt实现用快捷键实现文本编辑时换行

Qt有两个文本输入的类,一个是QLineEdit单行文本输入;一个是QtextEdit多行文本输入。

当我们一采用QTextEdit进行文本的编辑,多数的工程情景都要求文本的输入。这时可以根据项目工程的需要通过封装一个文本的编辑类来自定义一些文本编辑的属性。例如你可以自定义一些文本的快捷键。

QTextEdit这个类里面它已经有文本换行的快捷键,shift+Enter键实现文本编辑换行进行编辑,当我们需要定义掐他的的快捷时,则需要我们重写keyPressEvent或eventFilter事件,重新自定义自己喜欢的换行快捷键。

下面的例子就是实现CtrL +Enter键进行换行的代码:

具体代码如下:

else if((keyMdi & Qt::ControlModifier) || (keyMdi & Qt::ShiftModifier) || (keyMdi & Qt::MetaModifier)){

if(isEdittingText()){

textUndoAdded();

QTextCursor oldCursor = EDText::s_richEdit->textCursor();

QTextCursor textCursor(EDText::s_richEdit->document());

textCursor.setPosition(oldCursor.position());

EDText::s_richEdit->setUndoRedoEnabled(false);

textCursor.insertBlock();

EDText::s_richEdit->setUndoRedoEnabled(true);

return true;

}

}

大概的思路就是判断是否有CtrL + Enter键按下,然后记录当前光标的位置,在当前光标的位置insertBlock()实现换行。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部