• 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()实现换行。

  • 相关阅读:
    个人7天冲刺计划
    团队项目开发个人周计划
    满足NABC的软件创意
    关于二维数组相邻元素和的最大值问题的探讨
    敏捷软件开发综述
    关于开发方法的综述
    二维数组的子数组求最大值问题
    电梯调度实施
    小组作业提交报告
    模拟卷链接
  • 原文地址:https://www.cnblogs.com/wickhamchen/p/14002265.html
Copyright © 2020-2023  润新知