功能:利用QTextEdit开发一个日志显示窗口。没有太多操作,需要实现的是日志自动向上滚动,总体的日志量可以控制在x行(比如300行)以内;其他的应用功能我后面继续添加

 #include <QTextBlock>

 #include <QTextEdit>

 #include <QDebug>

 #include <QTextCursor>

     QString text;

     text = "1111111111111111111111111111\n"\

             "222222222222222222222222222\n"\

             "33333333333333333333333333333\n"\

             ";

     QTextEdit edit;//定义一个QTextEdit。当然如果你想看显示内容,还是需要将这个QTextEdit绑定在一个widget上面show出来的;

     edit.setText(text); //把text设置给QTextEdit,如果这时候用widget,show出来的话,应该就能看到一个类似于记事本的界面上有四行内容;

     QTextBlock ba = edit.document()->firstBlock();//获取第一行的内容,,如果不用这个函数,我真没办法获取到第一行;

     QTextCursor cur = edit.textCursor();  //关键点:QTextEdit要删除,只能clear(),那就全部删除掉了。或者利用光标来进行选择,因为光标里的函数有一个removeSelectedText()

     cur.setPosition(,QTextCursor::MoveAnchor);

     int length = ba.length();

     qDebug()<<"第一段的长度是:"<<length;

     cur.setPosition(length,QTextCursor::KeepAnchor);//设置selectedText的时候,我感觉应该有很多方式来选择的,我没有一一测试

     //cur.select(QTextCursor::WordUnderCursor);

     qDebug()<<"选择的文字是:"<<cur.selectedText();

     qDebug()<<"删除前:"<<edit.document()->lineCount();

     cur.removeSelectedText();

     edit.setTextCursor(cur);   //关键:必须将这个光标设置回去,否则你的删除操作没生效;

     qDebug()<<"删除后:"<<edit.document()->lineCount();//确认删除是否成功

     QTextBlock ba2 = edit.document()->firstBlock();

     qDebug()<<ba2.text();

     edit.append("\n5555555555555555555");

     QTextBlock ba3 = edit.document()->lastBlock();//此处是为了测试光标位置对添加后续内容的影响。结论是,删除动作不影响后续的追加text。

     qDebug()<<"ba3 = "<<ba3.text();

QT—QTextEdit控件显示日志的更多相关文章

  1. 仿酷狗音乐播放器开发日志二十三 修复Option控件显示状态不全的bug(附源码)

    转载请说明原出处,谢谢~~ 整个仿酷狗工程的开发将近尾声,现在还差选项设置窗体的部分,显然在设置窗体里用的最多的就是OptionUI控件,我在写好大致的布局后去测试效果,发现Option控件的显示效果 ...

  2. Qt常用控件

    Qt常用控件 QWidget与QFrame QWidget所有图形控件的基类 QFrame与QWidget的区别 QFrame是基本控件的基类, QWidget是QFrame的基类. 因此QFrame ...

  3. Qt基本控件及三大布局

    Qt基本控件及三大布局 来源: http://blog.csdn.net/a2604539133/article/details/73920696 Qt基本模块 一.Qt的三大布局 QHBoxLayo ...

  4. Qt入门(4)——Qt常见控件

    Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求.我们将对这些控件和对话框作一个大概的介绍. 1. QLabel 定义 QLabel* m_labelOrdered = newQLabe ...

  5. QTextEdit控件使用

    QTextEdit控件使用 QTextEdit *mpContentTextEdit = new QTextEdit(this); //设置占位符文本 mpContentTextEdit->se ...

  6. Qt编写控件属性设计器

    一.前言 自从研究Qt编写自定义控件以来,一发不可收拾,越多越多人有类似的需求找我定制控件,陆陆续续写了上百个控件,目前已超过150个,于是逐渐衍生了另外一个需求,提供一个控件属性设计器,类似QtDe ...

  7. xcode8 storyboard 控件显示错位

    升级xcode8 后选择device 为6s 出现上面的情况,控件显示异常.使用Update Frame 显示正常.不能选择Update Constraints   如果误选 commend + Z ...

  8. HighChats图表控件显示精度小数点的方法

    相信大家对highchats这个图表控件并不陌生,最近在项目中用到它,但是某些字段需要显示为小数点,顾查找资料文档发现下面两个方式可以实现: 初始化时候添加如下两个参数 tooltip:{    fo ...

  9. C# 如何定义让PropertyGrid控件显示[...]按钮,并且点击后以下拉框形式显示自定义控件编辑属性值

    关于PropertyGrid控件的详细用法请参考文献: 1.C# PropertyGrid控件应用心得 2.C#自定义PropertyGrid属性 首先定义一个要在下拉框显示的控件: using Sy ...

随机推荐

  1. 模拟stringBeanFactory解析xml

    思路:根据源码分析,将配置Bean类信息存放到xml文件中,通过解析xml, 然后反射拿到对象 存放到集合中 这里选择hashmap(键放置类名,值放置对象)存放,使用时使用get方法通过键(类名)拿 ...

  2. selenium定位方式-Xpath使用方法

    什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 一. 在火狐浏览器上安装Xpath 方法如下: 1.使用 Firefox 访问 https://a ...

  3. Python:正则表达式(一):search()、match()、findall() 的区别

    以前一直觉得正则很难,不会用,今天试验了几个方法,整理总结了一下,简洁明了. 简单来讲,正则就是 提取一段特征数据,用(.*?)代替. 自己总结的特点&区别: (.*) 贪婪匹配,会尽可能的往 ...

  4. Win10蓝屏的一些解决办法

    请仔细回想这个错误是什么时候出现的: 第一次发生时你对系统做了哪些操作: 发生时正在进行什么操作: 从这些信息中找出可能的原因: 从而选择相应解决方案并尝试排除. 0x0000000A:IRQL_NO ...

  5. Android logcat lines missing原因分析

    当出现类似如下错误日志时: 2019-04-14 17:51:14.506 10189-10189/com.ss.android.ex.parent D/GGK: no WonderfulVideo ...

  6. grep、awk、sed的巩固练习

    作者:邓聪聪 提取日志或文本中的关键内容 Apr :: localhost NetworkManager[]: <info> (eno16777736): Activation: star ...

  7. VGA、DVI、HDMI三种视频信号接口

    目前,电脑显示器常见的接口主要有HDMI.DP.DVI.VGA等4种接口.显示器数据线性能排名:DP>HDMI>DVI>VGA.其中 
VGA是模拟信号,已经被主流所淘汰,DVI.H ...

  8. 网络流板子/费用流板子 2018南京I题+2016青岛G题

    2018南京I题: dinic,链式前向星,数组队列,当前弧优化,不memset全部数组,抛弃满流点,bfs只找一条增广路,每次多路增广 #include <bits/stdc++.h> ...

  9. Lua模式匹配

    Lua并不使用POSIX规范的正则表达式[4](也写作regexp)来进行模式匹配.主要的原因出于程序大小方面的考虑:实现一个典型的符合POSIX标准的regexp大概需要4000行代码,这比整个Lu ...

  10. tcp与ip协议的区别

    TCP/IP(TransmissionControlProtocol/InternetProtocol的简写,中文译名为传输控制协议/互联网络协议). 简单地说,就是由底层的IP协议和TCP协议组成的 ...