1、文本光标插入表格:
表格:每列:成为一个字段。 字段名即每列的内容。 每行:一行就是一条记录(一整个字段的信息)。
表格一般用于组成关系型的数据。(前端一般喜欢使用表格存储管理数据信息。)
(QTextTableFormat设置单元格的格式,内边距、外边距、列宽等)
插入表格:
添加表格样式:内外边距主要是控制单元格与单元格的间距(内边距是每个字距离单元格的长度、内容与边框的间距)。当一个类存在返回值时:返回值为一个文本表格对象,该文本对象还包含其他方法(追加行、插入行等功能)。
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# tc.insertTable(5,3)
# 创建格式对象,设置单元格格式
ttf = QTextTableFormat()
# 右对齐
ttf.setAlignment(Qt.AlignRight)
# 内边距设置
ttf.setCellPadding(6)
# 外边距
ttf.setCellSpacing(4)
# 返回值为一个文本表格对象
table = tc.insertTable(5,3, ttf)
# table对象还包含其他方法(追加行、插入行等功能)
table.appendColumns(3)
return None
2、文本光标插入表格、列宽约束:
ttf.setColumnWidthConstrains(()),输入的形参可以传入元组(每列都需要限制宽度)。
设置列宽占整个文本输入框的50%,40%,10%。
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# tc.insertTable(5,3)
# 创建格式对象,设置单元格格式
ttf = QTextTableFormat()
# 右对齐
ttf.setAlignment(Qt.AlignRight)
# 内边距设置
ttf.setCellPadding(6)
# 外边距
ttf.setCellSpacing(4)
# 设置行宽
ttf.setColumnWidthConstraints((QTextLength(QTextLength.PercentageLength, 50),
QTextLength(QTextLength.PercentageLength, 40),
QTextLength(QTextLength.PercentageLength, 10)))
# 返回值为一个文本表格对象
table = tc.insertTable(5,3, ttf)
return None
3、文本光标插入文本块:(即段落、段落是通过回车分的)
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# 设置段落级别的格式,需要借助类QTextBlockFormat类
tbf = QTextBlockFormat()
# 设置文本内容右对齐、右间距为100
tbf.setAlignment(Qt.AlignRight)
tbf.setRightMargin(100)
# 设置字符级别的格式,QTextCharFormat
tcf = QTextCharFormat()
tcf.setFontFamily("隶书")
# 设置是否倾斜
tcf.setFontItalic(True)
tcf.setFontPointSize(20)
# 插入文本块,插入空的文本块,即插入换行
tc.insertBlock(tbf, tcf)
# 捕捉焦点
self.te.setFocus()
return None
4、文本光标对象插入文本框架:(就是一块区域)
文本文档对象有一个根框架(大的框架),根框架中有一个空白的文本块(小的框架)
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# 设置边框对象
tff = QTextFrameFormat()
# 设置边框有10个像素
tff.setBorder(10)
# 设置边框颜色
tff.setBorderBrush(QColor(25, 59, 19))
# 文本框架离右侧的间距
tff.setRightMargin(20)
# 获取文档对象
doc = self.te.document()
# 获得文档框架对象,大的文档框架、小的文本框架
root_frame = doc.rootFrame()
root_frame.setFrameFormat(tff)
# 插入文本框
tc.insertFrame(tff)
return None
5、文本光标----格式操作:方法一:添加内容可以同时设置内容相关的格式(添加块格式、文本字符格式等),方法二:可以单独设置(合并)格式,
def 格式设置与合并(self):
# 格式的合并
tc = self.te.textCursor()
tcf = QTextCharFormat()
tcf.setFontFamily("隶书")
tcf.setFontPointSize(30)
tcf.setFontOverline(True)
tcf.setFontUnderline(True)
tc.setCharFormat(tcf)
tcf2 = QTextCharFormat()
# 设置一个删除线
tcf2.setFontStrikeOut(True)
#tc.setCharFormat(tcf2)
# 在之前老的字符格式的基础上在合并新的格式
tc.mergeCharFormat(tcf2)
return None
# 设置字符格式,需要先选中字符,才会将格式应用于字符上
tc = self.te.textCursor()
tcf = QTextCharFormat()
tcf.setFontFamily("隶书")
tcf.setFontPointSize(30)
tcf.setFontOverline(True)
tcf.setFontUnderline(True)
tc.setCharFormat(tcf)
return None
tc = self.te.textCursor()
# 设置整个块的格式(一个段落)
tbf = QTextBlockFormat()
tbf.setAlignment(Qt.AlignCenter)
tbf.setIndent(2)
tc.setBlockFormat(tbf)
return None
tc = self.te.textCursor()
# 当前块内的所有字体格式
tcf = QTextCharFormat()
tcf.setFontFamily("隶书")
tcf.setFontPointSize(30)
tcf.setFontOverline(True)
tcf.setFontUnderline(True)
# 设置块内字符格式
tc.setBlockCharFormat(tcf)
设置两种不同的格式:直接设置新的格式会覆盖旧的格式,所以需要采用合并的方法。
tc.setCharFormat(tcf)
tcf2 = QTextCharFormat()
# 设置一个删除线
tcf2.setFontStrikeOut(True)
#tc.setCharFormat(tcf2)
# 在之前老的字符格式的基础上在合并新的格式
tc.mergeCharFormat(tcf2)
设置字符格式,需要先选中字符,才会将格式应用于字符上。