文本光标补充

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)

 设置字符格式,需要先选中字符,才会将格式应用于字符上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。七十二。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值