【转载自:http://linluan55.blog.163.com/blog/static/17554239920110187141222/】

QTextEdit窗口部件提供了强大的单页面的多信息文本编辑器。

介绍和概念

QTextEdit是一个高级的所见即所得的支持使用HTML风格标记的多信息文本格式的查看器/编辑器。它对于处理大文档和快速相应用户的输入进行了优化。

QTextEdit操作的三个模式:

模式

命令

注释

一般文本编辑器

setTextFormat(PlainText)

使用setText()设置文本,text()可以返回一般文本。文本属性(比如颜色)可以被设置,但是一般文本总是被返回。1.

多信息文本编辑器

setTextFormat(RichText)

使用setText()设置文本,text()可以返回多信息文本。多信息文本编辑是相当受限制的。例如你不能设置边白或者插入图片(尽管你可以读取并且正确地显示具有边白和包含图片的文件)。这个模式对于编辑少量的多信息文本是非常有用的。2.

文本查看器3.

setReadOnly(TRUE)

使用setText()或append()(这个没有撤销历史,所以更快并且使用更少的内存)来设置文本,text()根据textFormat()返回一般文本或者多信息文本。这个模式可以正确显示HTML中一个比较大的子集。

1.我们不建议使用QTextEdit来创建语法高亮的编辑器,因为现在的应用编程接口对于这个目的是不够的。我们希望能在以后的发行中发行一个支持语法高亮的更加完整的应用编程接口。

2.在稍后的Qt发行中计划推出一个更完整的支持设置边白、图片等等的应用编程接口。

3.Qt

3.1将提供一个日志浏览器模式,它是专门为快速地并且有效使用内存地显示大量的只读文本而优化的。

我们建议你总是调用setTextFormat()来设置你想使用的模式。如果你是用AutoText,那么setText()和append()将会试图决定给定的文本是一般文本还是多信息文本。如果你使用RichText,那么setText()和append()总是假设给定的文本是多信息文本。insert()简单的插入给定的文本。

QTextEdit在段落和字符上工作。段落就是被自动换行来适应窗口部件的宽度的被格式化的字符串。默认情况下当读取一般文本时,两个换行符确定一个段

落。一个文档由零或更多个段落组成,索引从0开始。字符是基于每一个段落来被索引的,也是从0开始。段落中的单字根据段落的alignment()进行对齐。段落被硬换行分隔。段落中的字符都有自己的属性,例如字体和颜色。

文本编辑文档使用如下概念:

当前格式 -- 这是当前光标位置的格式,如果存在被选择文本,也是它的格式。

当前段落 -- 包含光标的段落。

QTextEdit可以显示图片(使用QMimeSourceFactory)、列表和表格。如果文本太大以至于不能在文本编辑的视口中查看时,滚动条将会出现。文本编辑可以载入一般文本和HTML文件(HTML3.2和4的子集)。表现风格和有效标记集由styleSheet()来定义。自定义标记可以被创建并且被放置到样式单中。可以使用setStyleSheet()改变样式单,具体情况请参考QStyleSheet。通过图片标记识别的图片如果它们可以被使用文本编辑的QMimeSourceFactory解释的话就可以被显示,请参考setMimeSourceFactory()。

如果你想要一个有更多导航的文本浏览器,请使用QTextBrowser。如果你只是想显示一小条多信息文本,请使用QLabel或者QSimpleRichText。

如果你创建一个新的QTextEdit并且想允许用户编辑多信息文本,请调用setTextFormat(Qt::RichText)

来确保文本被看做多信息文本。(多信息文本使用HTML标记来设置文本格式属性。关于被支持的HTML标记的信息请参考QStyleSheet。)如果你

不明确地调用setTextFormat(),文本编辑将会猜测文本自己是多信息文本还是一般文本。这也就是说如果文本看起来像HTML或XML,它可能

被解释为多信息文本,所以你应该调用setTextFormat(Qt::PlainText)来保护这些文本。

注意我们并不是要为Qt添加一个具有所有特征的网页浏览器窗口部件(因为这将很容易使Qt的大小加倍并且只有很少的应用程序可以从这里受益)。Qt中的多信息文本支持是被设计为应用程序提供一个快速、可移植并且有效率地方式来添加合理的在线帮助工具,并且提供一个多信息文本编辑器的基础。

使用QTextEdit作为一个显示窗口部件

QTextEdit可以显示一个包括表格和图片的大的HTML子集。

文本通过使用setText()来设置或者替换,它删除任何已经存在的文本并且用传递给setText()调用的文本替换它。如果你使用继承HTML(强制使用setTextFormat(RichText))调用setText(),并且然后调用text(),返回的文本可能有不同的标签,但是它们呈现的都是一样的。文本可以使用insert()、paste()、pasteSubType()和append()来插入。被添加的文本没有进入撤销历史中,这使得append()更快并且消耗更少的内存。文本也可以被cut()。整个文本可以使用clear()来被删除并且被选择的文本可以使用removeSelectedText()来被删除。被选择(被标记)的文本也可以使用del()来被删除(如果没有文本被选择,这将删除光标右面的字符)。

可以使用setText()和text()来达到载入和保存文本的目的,例如:

QFile file( fileName ); // 从文件中读取文本

if ( file.open( IO_ReadOnly ) ) {

QTextStream ts( &file );

textEdit->setText( ts.read() );

}

QFile file( fileName ); // 把文本写入到文件中

if ( file.open( IO_WriteOnly ) ) {

QTextStream ts( &file );

ts << textEdit->text();

textEdit->setModified( FALSE );

}

默认这个文本编辑会在空白符号处自动换行来适应文本编辑窗口部件。setWordWrap()函数用来指定你想要的自动换行方式,或者如果你不像要任何自动换行,请使用NoWrap。调用setWordWrap()来设置固定的像素宽度FixedPixelWidth,或者由setWrapColumnOrWidth()确定的像素或者列数的字符列数(例如80列)FixedColumnWidth。如果你是用自动换行来适应窗口部件的宽度WidgetWidth,你可以使用setWrapPolicy()来指定是在空白符号或者任何地方自动换行。

背景色的设置与其它窗口部件不同,使用setPaper()。你可以指定画刷风格是一个普通颜色或者一个复杂的像素映射。

超文本链接可以自动加上下划线,这个可以通过setLinkUnderline()来改变。tab

stop宽度可以使用setTabStopWidth()来设置。

zoomIn()和zoomOut()函数能够用来通过增加(对于zoomOut()是减少)使用的点的大小来重新定义文本的大小。

lines()函数返回文本中的行数并且paragraphs()返回段落数。特定段落中的函数可以通过linesOfParagraph()返回。整个文本的字符长度可以通过length()返回。

你可以滚动到文本中的一个锚,也就是通过scrollToAnchor()到达

name="anchor">。find()函数可以被用来找到和选择文本中的给定字符串。

只读的QTextEdit提供了和(废弃的)QTextEdit相同的功能。(QTextView仍被提供用来保证旧代码的兼容性。)

只读的键绑定

当QTextEdit被使用的时候,只读的键绑定仅限于浏览,并且文本只能被鼠标选定:

按键

操作

UpArrow

向上移动一行

DownArrow

向下移动一行

LeftArrow

向左移动一个字符

RightArrow

向右移动一个字符

PageUp

向上移动一页(视口)

PageDown

向下移动一页(视口)

Home

移动到文本开始处

End

移动到文本结束处

Shift+Wheel

水平的滚动文本(Wheel就是鼠标滚轮)

Ctrl+Wheel

缩放文本

文本编辑也可以提供一些元信息。例如,documentTitle()函数将返回来自HTML的

标签中的文本。

文本编辑中显示的文本有一个context。context就是文本编辑的QMimeSourceFactory用来解析文件和图片的定位的路径。当查询数据时,它被传递给mimeSourceFactory()。(请参考See

QTextEdit()和context()。)

使用QTextEdit作为一个编辑器

使用QTextEdit作为显示窗口部件的所有信息这里也适用。

使用setSelection()来选择文本。setSelectionAttributes()函数用来指出被选择文本应该如何被显示。使用hasSelectedText()来搜索是否有任何文本被选择。当前被选择文本的位置可以由getSelection()提供并且被选择文本本身被selectedText()返回。选择可以使用copy()来复制到剪贴板,或者使用cut()剪切到剪贴板中。它可以被removeSelectedText()删除。使用selectAll()可以选择(或者取消选择)整个文本。QTextEdit支持多重选择。绝大多数选择函数是在默认选择(选择区0)中操作。如果用户按下非选择键,例如没有按下Shift的情况下的一个光标键,所有选择都被清空。

如果文本改变了,textChanged()信号被发射,并且如果用户通过按下回车键或者换行键插入一个新行,returnPressed()被发射。如果文本已经被修改,isModified()函数将会返回真。

QTextEdit提供基于命令的撤销和恢复。使用setUndoDepth()可以设置命令历史的深度,默认为100步。调用undo()或redo()可以撤销或者恢复上一次操作。信号undoAvailable()和redoAvailable()表明撤销和恢复操作是否可以被执行。

indent()函数用来再次缩进一个段落。它对于代码编辑器是很有用的,例如,Qt设计器的代码编辑器中,Ctrl+I调用indent()函数。

编辑键绑定

编辑中被实现的键绑定的列表:

按键

操作

Backspace

删除光标左侧的字符

Delete

删除光标右侧的字符

Ctrl+A

移动光标到行首

Ctrl+B

向左移动光标一个字符

Ctrl+C

复制标定的文本到剪贴板(也就是Windows下的Ctrl+Insert)

Ctrl+D

删除光标右侧的字符

Ctrl+E

移动光标到行尾

Ctrl+F

向右移动光标一个字符

Ctrl+H

删除光标左侧的字符

Ctrl+K

删除到行尾

Ctrl+N

移动光标到下一行

Ctrl+P

移动光标到上一行

Ctrl+V

把剪贴板文本粘贴到行编辑中(也就是Windows下的Shift+Insert)

Ctrl+X

剪切标定的文本,复制到剪贴板(也就是Windows下的Shift+Delete)

Ctrl+Z

撤销最后一次操作

Ctrl+Y

恢复最后一次操作

LeftArrow

向左移动光标一个字符

Ctrl+LeftArrow

向左移动光标一个单字

RightArrow

向右移动光标一个字符

Ctrl+RightArrow

向右移动光标一个单字

UpArrow

移动光标到上一行

Ctrl+UpArrow

移动光标到上一个单字

DownArrow

移动光标到下一行

Ctrl+Down Arrow

移动光标到下一个单字

PageUp

移动光标到上一页

PageDown

移动光标到下一页

Home

移动光标到行首

Ctrl+Home

移动光标到文首

End

移动光标到行尾

Ctrl+End

移动光标到文尾

Shift+Wheel

水平的滚动文本(Wheel就是鼠标滚轮)

Ctrl+Wheel

缩放文本

要选择(标定)文本,按下一个移动键的同时按住Shift键,例如Shift+右箭头将会选择右面的字符,并且Shift+Ctrl+右箭头将会选择右面的单字,等等。

默认情况下,文本编辑窗口部件在插入模式下工作,所以用户输入的文本都被插入到文本编辑中并且光标右面的文本都会移动到不碍事的地方。使用setOverwriteMode(),这个模式可以被改为覆盖,这时新文本将覆盖光标右面存在的任何文本。

qtextedit 替换_QTextEdit 作为窗口显示部件和编辑部件相关推荐

  1. qtextedit 替换_QTextEdit

    PyQt5 - QTextEdit QTextEdit类提供了一个控件来编辑和浏览纯文本和富文本. from PyQt5.QtWidgets importQMainWindow, QApplicati ...

  2. 在bat文件中关闭cmd窗口的快速编辑模式

    在bat文件中关闭cmd窗口的快速编辑模式 windows下再bat中输入 @echo off reg add HKEY_CURRENT_USER\Console /v QuickEdit /t RE ...

  3. qtextedit 替换_TextEdit文字插件下载 AE批量文字替换图层样式属性编辑脚本Aescripts pt_TextEdit V2.5 免费版+使用教程 下载-脚本之家...

    Aescripts pt_TextEdit是一款AE文字图层样式属性编辑脚本,可以快速的修改合成中的文字图层的任何属性,包括替换字体,文字大小,文字是否填充和描边,描边颜色,居中对齐等等,以及文字预设 ...

  4. linux使用vim同时打开文件,VIM 在同一个窗口中同时编辑多个文件

    vim 思维导图 参考 命令 一.如果在终端中开没有打开vim,可以: 横向分割显示: $ vim -o filename1 filename2 纵向分割显示: $ vim -O filename1 ...

  5. vim在同一个窗口中同时编辑多个文件以及自动格式化代码

    一.如果在终端中开没有打开vim,可以: 横向分割显示: $ vim -o filename1 filename2 纵向分割显示: $ vim -O filename1 filename2 二.如果已 ...

  6. linux下编辑VI窗口插入与编辑命令

    前言在嵌入式linux开发中,进行需要修改一下配置文件之类的,必须使用vi,因此,熟悉 vi 的一些基本操作,有助于提高工作效率. 一,模式 vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握这 ...

  7. qtextedit 替换_AE脚本- Aescripts pt_TextEdit 2.41(批量替换文字和样式)

    AE脚本- Aescripts pt_TextEdit 2.41(批量替换文字和样式) Aescripts pt_TextEdit 2.3可以快速的修改合成中的文字图层的任何属性,包括替换字体,文字大 ...

  8. Linux xshell窗口批量命令编辑功能(发送键输入到所有窗口)

    先将窗口垂直方向平铺,拖拽和使用菜单栏的[窗口]都可以实现: 效果:

  9. 使用模态窗口编辑数据

    为提高客户的体验,经常使用模态窗口.以下为使用的一个例子. 1.建立一个含有iframe的html文件,用于防止自刷新的问题. Fram.htm <html><head>< ...

最新文章

  1. python如何调用文件进行换位加密_Python换位密码
  2. 计算机aoa综合题word,AOA-word综合题操作步骤(修正版)
  3. 学习的本质在于触发了你的思考
  4. 通常,Node.js如何处理10,000个并发请求?
  5. c语言 生成一维条形码,C# BarcodeLib。dll 生成一维码的问题
  6. jsp+tomcat程序helloworld
  7. 深度解析:会用Excel,还有必要学Python吗?
  8. Linux下使用ntpdate进行时间同步
  9. 【训练过程】2) Train the VAEs of domain A and domain B respectively(分别训练域A和域B的VAE)
  10. 1.7 单层卷积网络
  11. 下一个十年,互联网升级的大致方向在哪里?
  12. 假设检验与区间估计的异同
  13. ai画面怎么调大小_AI人脸抓拍摄像机安装指导,这样安装抓拍更准
  14. Python深度学习
  15. Mysql中的straight_join
  16. 施金源:9.13黄金爆涨爆跌、黄金多单解套、黄金操作布局!
  17. Python中 {:.0f} 格式化输出,{0:^30}什么意思 . format(name))
  18. 字节 找出最近时间(回溯) C++ 2021-07-17
  19. 华擎计算机主板型号,华擎科技 新闻中心
  20. java中输入日期_Java中的日期操作

热门文章

  1. 震动传感器的简单使用
  2. v-slot:default=“user“的含义,slot就是插槽的意思
  3. axios学习笔记--nprogress
  4. html span字体旋转,几种常见的文字排列方向代码(倒向、竖向和旋转)
  5. android程序开机自启的方法,Android编程实现应用程序开机自启动的方法
  6. python 小知识点
  7. Matlab中的sparse命令,matlab中的sparse命令
  8. 扩号匹配问题 OpenJ_Bailian - 3704
  9. 微软官方工具_微软官方生产力工具箱PowerToys复活,电脑一批软件可以卸载了
  10. C# 控制台程序的开发和打包为一个exe文件