Qt控件-QPlainTextEdit使用

参考链接:
https://blog.csdn.net/seniorwizard/article/details/109726147;
https://blog.csdn.net/seniorwizard/article/details/109726147


文章目录

  • Qt控件-QPlainTextEdit使用
    • QPlainTextEdit控件简单介绍
    • 1. 逐行读取文本编辑框的内容
    • 2. 使用QPlainTextEdit自带的快捷菜单
    • 3. 作为日志显示窗口

QPlainTextEdit控件简单介绍

QPlainTextEdit是一个多行纯文本编辑器控件,用于显示和编辑多行简单文本。

QPlainTextEdit继承自QAbstractScrollArea类,继承关系如下:

QPlainTextEdit支持文本段落,默认情况下,一个换行符表示一个段落。QPlainTextEdit控件中的文档可以是一个或者多个段落组成,且段落中的每个字符都可以有其自己的属性,比如自己的字体和颜色。

QPlainTextEdit常用方法:

函数名 说明
setPlainText(const QString &text) 设置多行文本框的内容
insertPlainText(const QString &text) 插入普通文本
appendPlainText(const QString &text) 添加普通文本
toPlainText() 获取到所有文字
appendHtml(const QString &html) 添加HTML文本内容
setReadOnly(bool op) 设置成只读模式
isReadOnly() 是否是只读模式
setLineWrapMode() 设置换行模式,取值有:
QPlainTextEdit::NoWrap 不自动换行
QPlainTextEdit::WidgetWidth 根据文本框的宽度自动换行
lineWrapMode() 获取换行模式

QPlainTextEit常用的信号:

信号名 说明
textChanged() 文本内容发生改变时触发
selectionChanged() 选中内容发生改变时触发
cursorPositionChanged() 光标位置发生改变时触发
copyAvaliable() 复制可用时触发
redoAvaliable() 重做可用时触发
undoAvaliable() 撤销可用时触发

QPlainTextEit提供cut()copy()paste()undo()redo()clear()selectAll()等标准编辑功能的槽函数。

QPlainText的文字内容以QTextDocument类型存储,函数QPlainTextEdit::document()返回文档对象的指针。

QTextDocument以文本块的方式存储,一个文本块是一个段落,每个段落以回车符结束。QTextDocument提供一些函数实现对文本内容的存取:

  • int blockCount():获取文本块个数;
  • QTextBlock findBlockByNumber(int blockNumber):读取某个文本块,序号从0开始;

通过QTextBlock::text()可以获取纯文本文字。

1. 逐行读取文本编辑框的内容

void MainWindow::on_pushButton_Update_clicked()
{// 将文本框中的内容更新到下拉表中QTextDocument *doc = ui->plainTextEdit_Edit->document();int nCnt = doc->blockCount();for(int i=0;i<nCnt;++i){QTextBlock textBlock = doc->findBlockByNumber(i);QString strtext = textBlock.text();ui->comboBox->insertItem(i,strtext);}
}

2. 使用QPlainTextEdit自带的快捷菜单

void MainWindow::on_plainTextEdit_Edit_customContextMenuRequested(const QPoint &pos)
{// 自带的右键快捷菜单信号槽函数// 创建并显示标准弹出式菜单QMenu *menu = ui->plainTextEdit_Edit->createStandardContextMenu();  // 创建菜单menu->exec(pos);
}

3. 作为日志显示窗口

示例代码:

void AddLog(const char *fmt,...)
{QPlainTextEdit *plainTextEdit = ui->showInformation_plainTextEdit;// 设置当前控件为只读if(!ui->showInformation_plainTextEdit->isReadOnly()){ui->showInformation_plainTextEdit->setReadOnly(true);}// 设置光标到文本末尾plainTextEdit->moveCursor(QTextCursor::End,QTextCursor::MoveAnchor);va_list list;va_start(list,fmt);QDate date = QDate::currentDate();QTime time = QTime::currentTime();QString str = QString().vsprintf(fmt,list);va_end(list);QString strtext = "";strtext.sprintf("[%04d-%02d-%02d %02d:%02d:%02d.%03d]  %s\r\n",date.year(),date.month(),date.day(),time.hour(),time.minute(),time.second(),time.msec(),str.toStdString().data());ui->showInformation_plainTextEdit->insertPlainText(strtext);// 移动滚动条到底部QScrollBar * scrollbar = ui->showInformation_plainTextEdit->verticalScrollBar();if(scrollbar){scrollbar->setSliderPosition(scrollbar->maximum());}
}

QPlainTextEdit使用示例:https://gitee.com/zoya23/qt-examples。

【Qt】控件——QPlainTextEdit使用简单介绍:常用方法及信号、逐行读取编辑框的内容、使用自带的快捷菜单、作为日志显示窗口相关推荐

  1. 大量的QT控件及示例发放,求泛滥

    大量的QT控件及示例发放,求泛滥 2017年01月13日 14:36:22 阅读数:781  在论坛中,看到一位朋友介绍http://qt-apps.org/站上有很多好的资料和示例,现在发出来,与大 ...

  2. QT控件系列一 | 半透明遮罩弹窗

    QT控件系列一 | 半透明遮罩(弹窗) 文章目录 QT控件系列一 | 半透明遮罩(弹窗) 1.1 前言 1.2 原理(技术点) 1.3 使用 1.4 资源下载 1.1 前言 ​ 我们看Windows桌 ...

  3. .net数据源控件绑定mysql_数据源控件与数据绑定控件的进一步简单讨论(1)

    简单的说,DataSource数据源控件是一个抽象的数据库,可以在该数据库里进行数据的操作(Select,Delete,Update和Insert).数据源控件通过控件的DataSourceID和具有 ...

  4. Qt入门之常用qt控件认知之QLabel

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://hongbin0720.blog.51cto.com/3305400/123043 ...

  5. android比较常用的布局,Android_九宫图比较常用的多控件布局(GridView)使用介绍,GridView跟ListView都是比较常用的 - phpStudy...

    九宫图比较常用的多控件布局(GridView)使用介绍 GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫 ...

  6. 使用timer控件创建一个简单的报警程序

    简介: 当我使用计算机工作时,我总是如此的专心致志,以至于每当我过了"一会儿"去看时间时,发现已经过了三个小时,而我却完全没有意识到!所以我决定使用我从Code Project学来 ...

  7. WPF 表格控件 ReoGrid 的简单使用

    WPF 表格控件 ReoGrid 的简单使用 目录 一.概述 二.安装 三.添加控件 四.加载 Excel 五.属性设置 六.支持触摸滚动 七.其它操作 1.显示和隐藏列 2.显示特定字体 八.资源链 ...

  8. Qt控件使用方法技巧合集

    Qt控件使用方法技巧合集 ~~~~~~~~        本篇博客代码示例包含C++版本和Python版本,不管是哪个版本,Qt的API都是一样的,使用方式大同小异. 文章目录 Qt控件使用方法技巧合 ...

  9. Android Design Support Library 中控件的使用简单介绍(一)

    Android Design Support Library 中控件的使用简单介绍(一) 介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android ...

最新文章

  1. 一文带你看懂Springboot核心功能及优缺点
  2. php动态语言静态化
  3. Zebra斑马打印机指令编程进阶(语言通用)--利用指令绘制出图像打印
  4. html iframe.b.gen 病毒,常见病毒及处理方法.doc
  5. ubuntu下安装Thinkpad指纹识别系统
  6. 介绍一个好用的日期倒计时工具
  7. w10家庭版安装java不_小编为你分析win10系统安装不了java的设置办法
  8. Android五大布局详解
  9. css3鼠标悬停图片抖动效果
  10. html5在线预览附件,干货-基于html5的本地多图上传并可在线预览
  11. 淘宝钻石(信用)的等级
  12. python学生教务管理系统
  13. Java实现QQ邮件群发功能
  14. 瑞典皇家理工学院计算机学什么,瑞典皇家理工学院有哪些研究生专业
  15. 如何找短视频素材?这些工具可以帮到你
  16. 拼手气红包算法_线段切割法
  17. 怎么把歌曲的格式改成mp3格式?
  18. linux中项目常用的start.sh和stop.sh
  19. 5G商用落地 “样板间”未达预期, URLLC如何带头提前进入5.5G时代?
  20. plot fplot ezplot

热门文章

  1. 利用css 动画实现节流
  2. 2009年陕西高考作文题--西安的无奈
  3. 文本框文字居中html代码,html如何实现文本上下居中
  4. 计算机体系结构的铁律(iron law)
  5. 写外挂为什么都用易语言?
  6. 【motion builder】key帧与动作调整
  7. SQLAlchemy Column
  8. 安全工具介绍 冰点还原
  9. GitHub中PR(Pull request)操作
  10. python课后练习