zoukankan      html  css  js  c++  java
  • 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()实现换行。

  • 相关阅读:
    操作系统——死锁相关
    Java 实现广度优先搜索和深度优先搜索
    Java 实现常见排序算法
    初次接触JQuery
    Firefox使用stylish自定义网页背景
    使用randoop自动化生成测试用例
    软件测试(五)——使用Selenium IDE进行自动化测试
    软件项目管理(二)——用jenkins持续集成、Maven、Github的使用
    云计算(一)——使用 Hadoop Mapreduce 进行数据处理
    软件测试(四)——图覆盖
  • 原文地址:https://www.cnblogs.com/wickhamchen/p/14002265.html
Copyright © 2011-2022 走看看