1、文本光标:通过文本光标完成内容或者格式的设置。
文本光标与qt自带的API设置文本的区别(两者都是对文本编辑器中的内容进行处理):
①:文本文档:相当于一个word文件(看不见的对象,在内存中有一个类似doc的文档),
文本编辑器:相当于一个word操作界面,
文本文档和文本编辑器的关系:文本编辑器加载了文本文档。
通过文本光标处理文档,①首先需要获取文本光标对象。textCursor()
②通过文本光标中提供的方法间接控制上方获取的文本文档对象。
2、使用文本光标对象往文本编辑器中插入内容:
通过按钮控制光标插入内容:
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QTextEdit的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
te = QTextEdit("xxxxx", self)
self.te = te
te.move(50, 50)
te.resize(300, 300)
te.setStyleSheet("background-color:cyan;")
# 调用占位文本提示的方法
# self.占位文本的提示()
# self.文本内容的设置()
test_btn = QPushButton(self)
test_btn.move(10, 10)
test_btn.setText("按钮")
test_btn.clicked.connect(self.btn_pressed)
# self.btn_test()
def btn_pressed(self):
# self.te.setText("")
# self.te.clear()
self.光标插入内容()
def 光标插入内容(self):
# 创建文本字符格式对象
tcf = QTextCharFormat()
tcf.setToolTip("撩课学院网址")
# 设置背景颜色
# 设置字体家族
tcf.setFontFamily("隶属")
# 设置字体大小
tcf.setFontPointSize(66)
# 首先获取文本光标对象
tc = self.te.textCursor()
tc.insertText("itlike.com", tcf)
# 写一个超链接,显示的两个撩课字体就是超链接
tc.insertHtml("<a href='http://www.itlike.com'> 撩课</a>")
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())
3、使用文本光标插入图片
def 光标插入内容(self):
tc = self.te.textCursor()
# 创建格式对象
tif = QTextImageFormat()
# 设置图片名称
tif.setName("xxx.png")
tif.setWidth(100)
tif.setHeight(100)
# 向左向右浮动,已被弃用
tc.insertImage(tif)
tc.insertImage(tif,QTextFrameFormat.FloatRight)
# 或者直接插入图片字符串(即路径)
tc.insertImage("xxx.png")
return None
4、使用文本光标插入文本片段
类中的对象创建方法:创建...对象(通过使用构造函数创建、或者通过类中的方法创建(类名调用方法))
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# 创建...对象(通过使用构造函数创建、或者通过类中的方法创建(类名调用方法))
tdf = QTextDocumentFragment.fromHtml("<h1>xxxxxsvl</h1>")
tc.insertFragment(tdf)
5、文本光标对象插入列表
列表:很多同级条目无序或者按顺序排列。
插入一个无序列表:tc.insertList(QTextListFormat.ListDecimal)
创建列表与插入列表的区别: 创建列表过程会把光标所在的整段作为列表的第一项。
插入列表:会将光标右侧的数据作为列表的第一项。
方式一:通过枚举类型创建列表
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# t1 = tc.insertList(QTextListFormat.ListCircle)
t1 = tc.insertList(QTextListFormat.ListDecimal)
print(t1)
t2 = tc.createList(QTextListFormat.ListDecimal)
return None
方式二创建列表:通过创建对象的方式创建列表
def 光标插入内容(self):
# 文本光标对象
tc = self.te.textCursor()
# 方式二,通过创建对象创建列表
tlf = QTextListFormat()
# 设置缩进,3个Tab键
tlf.setIndent(3)
# 设置前缀
tlf.setNumberPrefix("<<")
# 设置后缀
tlf.setNumberSuffix(">>")
# 设置样式,显示前后缀需要列表的(左侧图标为数字)
tlf.setStyle(QTextListFormat.ListDecimal)
tt = tc.createList(tlf)
return None