Python GUI编程网 > PyQt5控件_PyQt5控件方法大全 > QTextEdit文本光标插入文本textCursor()和文本字体、大小等格式设置QTextCharFormat()以及内容插入
python教程

QTextEdit文本光标插入文本textCursor()和文本字体、大小等格式设置QTextCharFormat()以及内容插入

发布博客:2022年12月6日 17:42
阅读:282
作者:Python GUI编程网

QTextEdit文本光标是很重要的知识点,本章节对文字大小、字体和插入等操作都要借助文本光标来完成,后面的插入如片、表格、列表等很多操作也都是借助于此来完成的。

QTextEdit文本光标是很重要的知识点,本章节对文字大小、字体和插入等操作都要借助文本光标来完成,后面的插入如片、表格、列表等很多操作也都是借助于此来完成的。

QTextEdit文本光标的使用首先要创建光标对象,然后通过光标插入文本、设置格式等操作。这里要了解2个函数document()和textCursor(),他们分别是获取文本文档和操作鼠标的方法。

1.首先创建光标对象

qtc = self.qte.textCursor()

2.然后在创建一个格式对象,注意这里是文本格式对象,不同类型的富文本使用不同的方法,这里使用QTextCharFormat()方法。

tcf = QTextCharFormat()  # 创建一个格式对象
tcf.setToolTip('pyqt5中文网')  # 设置提示文本
tcf.setFontFamily('楷书')  # 设置字体
tcf.setFontPointSize(25)  # 设置字体大小

3. 通过光标插入文本,传入上面的格式对象就可以实现带格式的文本插入了。

qtc.insertText('www.PyQt5.cn', tcf)
qtc.insertHtml("<a href='https://www.pyqt5.cn'>PyQt5中文网</a>")

下面是完整代码,大家自己试试运行效果,了解一下

from PyQt5.Qt import *
 import sys
 
 
 class Window(QWidget):
     def __init__(self):
         super().__init__()
         self.setWindowTitle("QTextEdit - PyQt5中文网")
         self.resize(600, 500)
         self.func_list()
 
     def func_list(self):
         self.func()
         self.text_set()
 
     def func(self):
         self.qte = QTextEdit('QTextEdit构造', self)
         self.qte.move(100, 100)
         self.qte.resize(250, 250)
         self.qte.setStyleSheet('background-color:green')
 
         self.btn = QPushButton('按  钮', self)
         self.btn.move(120, 50)
         self.btn.resize(70, 30)
         self.btn.pressed.connect(self.text_cur)
 
     # 文本光标完成内容和格式设置
     def text_cur(self):
         # 1.首先创建一个光标对象;2.通过光标插入文本,传入上面的格式对象;# 3.插入文本内容格式
         # self.qte.document()  # 获取文本文档的方法,返回QTextDocument
         # self.qte.textCursor()  # cursor是直接操作鼠标的方法,textCursor是操作光标的
 
         # 插入文本
         # 1.首先创建一个光标对象
         qtc = self.qte.textCursor()
         # 3.插入文本内容格式
         tcf = QTextCharFormat()  # 创建一个格式对象
         tcf.setToolTip('pyqt5中文网')  # 设置提示文本
         tcf.setFontFamily('楷书')  # 设置字体
         tcf.setFontPointSize(25)  # 设置字体大小
         # 2.通过光标插入文本,传入上面的格式对象
         qtc.insertText('www.PyQt5.cn', tcf)
         qtc.insertHtml("<a href='https://www.pyqt5.cn'>PyQt5中文网</a>")
 
 
 if __name__ == '__main__':
     app = QApplication(sys.argv)
     window = Window()
 
     window.show()
     sys.exit(app.exec_())

运行结果如下图:

QTextEdit