QTextEdit 是一个所见即所得的富文本编辑框,它还支持HTML4标签子集(详见:QTextEdit 支持的超文本),可以加载纯文本和富文本的文件,适用于浏览大型的文本文件。
创建 控件:
运行:
有丰富的功能,这里介绍一些常用的功能
运行:
2.1 设置文本格式
可以通过程序来设置内容,内容可以设置为普通文本,或Html超文本。
Html超文本和普通文本的区别是超文本会根据特定的格式给文字设置样式,而普通文本输入什么就显示什么,以下程序示建立了2个文本框,以便对比它们的不同:
运行:
显然的,第一个窗口将按HTML语言转换了文字的格式,而第二个窗口,将文字原封不动的显示出来。
2.2 插入文本和追加文本
插入文本是将文本插入到光标处, 追加文本是将文本追加到文本末尾,会另起一个新的段,也就是换行。
运行:
“插入文本”在“初始文本”之前,这是因为程序使用了设置文本后,此时光标停留在首行,而追加的文本加粗了,这说明函数是支持超文本的。
2.3 设置字体和大小
也拥有其他的功能,如设置字体大小和字体等:
以下程序示例了通过按钮来设置文本框字体大小的格式:
运行:
Word 软件在编辑的时候,其实已经存在一个 docx 文档,Word 只是提供编辑的功能,QTextEdit 也是类似的原理,我们可以通过直接操作这个对象(文本文档),来达到改变文本显示的效果。可以通过文本光标来操作文本文档,Qt中,文本光标和文本文档都是一个对象。
要通过文本光标才操作文本文档之前,首先要通过来获取光标对象:
运行:
由于程序没有调用show(),所以没有窗口显示,不过在控制台,可以看到我们正常地获取到了一个对象。这样,我们通过就可以来操作文本文档了。
文本光标对象可以往文本文档添加内容,如插入文本,图标,句子,列表,表格,文本框和框架。由于QTextCursor 函数内容较多,这里不列举,可以参考官方文档:QTextCursor Class,在浏览器中搜索关键字即可查看所有和插入相关的函数,如下所示:
接下来的程序示例了以上一些API的使用方法。
2.1 插入文本
2.1.1 插入普通文本
可以很方便的插入一段普通的文本:
运行:
2.1.2 插入富文本
运行:
这里只是示例了修改字体,以及其大小等,还可以设置下划线颜色,下划线类型等等。这些API函数都可以在QTextCharFormat Class 查看。注意,测试发现设置单独的设置下划线颜色是不会显示的,还需要设置下划线类型才可(或单独使能下划线),这里做一个简单示例,具体参数可见官网。
运行:
2.2 插入图片
可以插入一张指定格式的图片:
运行:
第16行:由于笔者把图片(th.jpg)放在 pic 文件夹下面,所以名字需要带路径。
2.3 插入句子(段落)
可以插入句子(段落),同样可以指定插入的文字为Html还是普通文本,改函数功能和插入文本非常类似。
运行:
2.4 插入列表
中,列表有插入列表和创建列表两种类型,它们的用法类似,只是插入列表会在光标处插入一个列表,所以光标右侧的文本就称为了列表的内容,而创建列表则光标所在行的文本都称为了列表的内容。列表有两类参数:枚举值和 对象,前者便捷的设置列表样式,但是风格固定,而后者开发者可以自定义类型。
以下程序示例程序使用便捷的方式插入一个列表:
运行:
可以看到,由于我们没有输入任何内容,所以这个列表是空的,它还自动的缩进了一个Tab的距离。使用这种方式创建列表比较编辑,但是同时也有较大的限制。
以下程序则示例了另一种方式:
其中,红色箭头指出了列表的缩进长度,“a” 为指定的列表序号,“-” 和 “~” 为前缀和后缀。这里需要注意,, 设置的是序号的前缀和后缀,如果设置类型为无序列表,这2句程序将不生效。如第17行改为::
可以看到,前缀和后缀不再显示。
2.5 插入表格
通过光标对象可以插入表格,并设置它的函数,列数和线粗等。和“插入列表”相同,插入表格也有2种方式,直接插入和设置一个结构体插入,首先示例了第1种方式:
运行:
接下来,通过设置一个表格格式对象的方式,来插入一个可以自定义样式的表格:
运行:
这个表格总共有8列,这是因为第19行插入了3列以后,第21行再一次追加了5列。同事,整个表格的内外边距也改变了,如果内外边距都为0,它们就会重叠在一起:
这里引入了新的对象,详见:QTextTable Class顾名思义,他是一个表格对象,有了整个对象,我门通用可以对表格进行编辑,上文就示例了使用这个对象,对表格进行追加5列的操作,还可以合并单元格,获取列的个数等等。这里需要区分对象和对象是不同的,一个是表格对象本身,一个是表格格式的对象。
2.7 插入文本块
文本块可以设置格式,如文本块里面段落的格式,字体的格式等等。
文本块有以上3个构造函数,可以发现可以通过传入,参数来设置文本框的机构。
这样程序就设置好了段落的格式,以及字体的格式,现在我们输入字体看一下效果:
所有的字体重叠在了一起,这是因为,程序的第16行,设置了行高为10个像素,但是程序的在24行设置了字体的大小为20像素,所以出现了重叠的现象,测试过程发展如果行高和字体高度一样,因为字母是可以正常显示的,但是汉字会有一定的的重叠。的的一个参数为数值,它的含义取决于第二个参数,可能是像素高度,也可能是百分比值,详见 LineHeightTypes。
2.8 插入框架
中可以插入框架,框架内部也可以继续插入框架:
运行:
设置格式主要是将字符或段落设置成某一个格式,合并格式是一般是添加新的格式。比如,已经设置了某一个段落字体幼圆,输出的字体就是幼圆格式,此时如果合并一个删除线,那么文本就是幼圆+删除线,如果是设置格式,则变成默认字体加删除线。接着实现一个小功能:给窗口添加一个文本编辑框和3个按钮,其中一个设置字体为幼圆,字体大小为30像素,其中一个为添加下划线,最后一个为设置字体为斜体并回复默认字体。提示:这里当程序调用时,若有选中的文本,改文本格式将作相应改变。
运行:
可以看到,我们选择一段文字,然后点击“幼圆大字体”按钮,此时选中的文本就被设置为幼圆大字体,接着点击“下划线”,选择的字体就添加了下划线,但是并不会改变其字体和大小,最后点击“斜体”,字体和大小就恢复到默认了,这就是合并格式和设置格式的区别,前者是添加格式,后者是设置格式。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/34344.html