QTextEdit文本光标插入文本textCursor()和文本字体、大小等格式设置QTextCharFormat()以及内容插入
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_())
运行结果如下图: