您的位置:首页 > 科技 > IT业 > 开发公司的安全生产工作方案_为企业制定网络营销方案_运营推广seo招聘_哪些网站有友情链接

开发公司的安全生产工作方案_为企业制定网络营销方案_运营推广seo招聘_哪些网站有友情链接

2025/2/25 23:31:09 来源:https://blog.csdn.net/qxj2422640226/article/details/145060863  浏览:    关键词:开发公司的安全生产工作方案_为企业制定网络营销方案_运营推广seo招聘_哪些网站有友情链接
开发公司的安全生产工作方案_为企业制定网络营销方案_运营推广seo招聘_哪些网站有友情链接

1. 描述

  1. 是一个高级的WYSIWYG(What You See Is What You Get 所见即所得)查看器/编辑器,支持使用HTML样式标签的富文本格式。
    1. 支持的HTML4标签子集
    2. https://doc.qt.io/qt-5/richtext-html-subset.html
    3. 如果不够, 可以考虑使用WebKit
  2. 它经过优化,可以处理大型文档并快速响应用户输入。
  3. 适用于段落和字符:如果文本太大而无法在文本编辑的视口中查看,则会出现滚动条
  4. 文本编辑可以加载纯文本和富文本文件:显示图像,列表和表格

2. 继承

QAbstractScrollArea

演示:创建一个文本编辑器

from PyQt5.Qt import *import sysif __name__ == '__main__':app = QApplication(sys.argv)window = QWidget()window.setWindowTitle('QTextEdit使用')window.resize(500, 500)# 创建文本编辑器te = QTextEdit('QTextEdit...', window)te.move(50, 50)te.resize(300, 300)te.setStyleSheet('background-color: cyan;')window.show()sys.exit(app.exec_())

3. 功能作用

3.1 占位提示符

3.1.1 API

API功能备注
setPlaceholderText(str)
设置占位提示符
-
placeholderText() -> str
获取占位提示符
-

3.1.2 应用场景

在文本框内部内容为空时, 给用户的文本提示信息

3.1.3 演示

from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')self.placeholder_prompt_text()def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.2 内容设置

3.2.1 普通文本

API功能备注
setPlainText(str)
设置普通文本
-
insertPlainText(str)
插入普通文本
-
toPlainText() -> str
获取普通文本内容
-

3.2.2 HTML

API功能备注
setHtml(str)
设置输入HTML文本
-
insertHtml(str)
插入HTML文本
-
toHtml() -> str
获取HTML文本内容
-

3.2.3 设置文本-自动判断格式

setText(str)

3.2.4 追加文本

append(str)

3.2.5 清空

clear()

3.2.6 文本光标

3.2.6.1 理论基础
  1. 通过文本光标, 可以操作编辑 文本文档 对象
  2. 整个文本编辑器, 其实就是为编辑 这个文本文档 提供了一个可视化的界面
  3. 简单理解, 可以比喻成 一个doc文档, 使用word软件打开了这个文档, 你可以随意编辑
3.2.6.2 获取文本光标方法
API功能备注
document() -> QTextDocument
-
-
3.2.6.3 QTextDocument返回值
3.2.6.3.1 描述
  1. 保存带格式的文本文档
  2. 为样式化文本和各种类型的文档元素提供支持(框架、文本块列表、表格、图像等)
  3. 是结构化富文本文档的容器
    1. 在这里插入图片描述
    2. 一个空的文档包含一个根框架,这个框架包含一个空的文本块
      1. 当需要进行文档结构导航时,有时候可以从根框架开始。
      2. 因为根框架提供了访问整个文档结构的能力
  4. 文本属性在字符级别和块级别定义
    1. 在字符级别可以指定字体、颜色和大小
    2. 在块级别可以指定更高一级的行为,例如文本流方向、对齐方式和背景色
3.2.6.3.2 继承结构图
  1. QTextDocument
  2. 在这里插入图片描述
  3. QTextBlock
  4. 在这里插入图片描述
3.2.6.4 textCursor() -> QTextCursor
3.2.6.4.1 插入内容
3.2.6.4.1.1 API
  1. 插入文本
API功能备注
insertText(str)
插入文本(普通文本)
-
insertText(QString text, QTextCharFormat format)
插入文本, 带格式
QTextCharFormat:针对于部分字符的格式描述
insertHtml(html_str)
插入HTML 字符串
-
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""# 获取光标插入内容self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 光标插入文本tcf = QTextCharFormat()tcf.setToolTip('linfeng')tcf.setFontFamily('隶书')tcf.setFontPointSize(66)tc = self.te.textCursor()tc.insertText('xujie', tcf)tc.insertHtml('<a href="https://www.baidu.com">baidu</a>')def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

  1. 插入图片
API参数备注
insertImage(QTextImageFormat)
QTextImageFormat
①xx.setName("xxx.png")
②xxx.setWidth(20)
③xxx.setHeight(20)
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""# 获取光标插入内容self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 光标插入图片tc = self.te.textCursor()tif = QTextImageFormat()tif.setName('cats1.ico')tif.setWidth(100)tif.setHeight(100)tc.insertImage(tif)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

  1. 插入句子
API参数备注
insertFragment(QTextDocumentFragment)
QTextDocumentFragment
①fromHtml(html_str)
②fromPlainText(str)
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()self.text_content_settings()def btn_click_test(self):"""按钮点击测试"""# 获取光标插入内容self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 光标插入文本片段tc = self.te.textCursor()tdf = QTextDocumentFragment.fromHtml('<h1>xujie</h1>')tdf1 = QTextDocumentFragment.fromPlainText('<h1>xujie</h1>')tc.insertFragment(tdf)tc.insertFragment(tdf1)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

  1. 插入列表
API功能
insertList(QTextListFormat) -> QTextList
在当前位置插入一个新块,并使其成为具有给定格式的新创建列表的第一个列表项。返回创建的列表
insertList(QTextListFormat.Style) -> QTextList
在当前位置插入一个新块,并使其成为具有给定格式的新创建列表的第一个列表项。返回创建的列表
createList(QTextListFormat ) -> QTextList
创建并返回具有给定格式的新列表,并使当前段落的光标位于第一个列表项中
createList(QTextListFormat.style ) -> QTextList
创建并返回具有给定格式的新列表,并使当前段落的光标位于第一个列表项中
参数枚举功能
QTextListFormat
setIndent(int)
缩进
setNumberPrefix(str)
前缀
setNumberSuffix(str)
后缀
setStyle(QTextListFormat_Style)
样式
QTextListFormat.Style
QTextListFormat.ListDisc
一个圆圈
QTextListFormat.ListCircle
一个空的圆圈
QTextListFormat.ListSquare
一个方块
QTextListFormat.ListDecimal
十进制按升序排列
QTextListFormat.ListLowerAlpha
小写拉丁字母按顺序排列
QTextListFormat.ListUpperAlpha
大写拉丁字母按顺序排列
QTextListFormat.ListLowerRoman
小写罗马数字(最大支持4999项)
QTextListFormat.ListUpperRoman
大写罗马数字(最大支持4999项)
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 插入列表tc = self.te.textCursor()# tl = tc.insertList(QTextListFormat.ListCircle)# 创建列表# tc.createList(QTextListFormat.ListCircle)tlf = QTextListFormat()tlf.setIndent(2)tlf.setNumberPrefix("<<")tlf.setNumberSuffix(">>")tlf.setStyle(QTextListFormat.ListDecimal)tc.createList(tlf)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述
5. 插入表格:insertTable(int rows, int columns, QTextTableFormat) -> QTextTable

参数枚举功能
QTextTableFormat
setAlignment(self, Union, Qt_Alignment=None, Qt_AlignmentFlag=None)
对齐方式
setCellPadding(self, p_float)
内边距
setCellSpacing(self, p_float)
外边距
setColumnWidthConstraints(self, Iterable, QTextLength=None)
设置列宽

在这里插入图片描述

from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 插入表格tc = self.te.textCursor()ttf = QTextTableFormat()ttf.setAlignment(Qt.AlignCenter)ttf.setCellPadding(1)ttf.setCellSpacing(0.1)table = tc.insertTable(5, 3, ttf)table.appendColumns(4)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述
6. 插入文本块

API功能
insertBlock()
插入一个空的文本块
insertBlock(QTextBlockFormat)
插入文本块的同时, 设置文本块格式
insertBlock(QTextBlockFormat, QTextCharFormat)
插入文本块的同时, 设置文本块格式和文本字符格式
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 插入文本块tc = self.te.textCursor()tbf = QTextBlockFormat()tbf.setAlignment(Qt.AlignCenter)tbf.setLeftMargin(100)tbf.setIndent(2)tcf = QTextCharFormat()tcf.setFontFamily('隶书')tcf.setFontItalic(True)tcf.setFontPointSize(50)tc.insertBlock(tbf, tcf)self.te.setFocus()def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述
7. 插入框架:insertFrame(QTextFrameFormat) -> QTextFrame

from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""# 获取光标插入内容self.text_cursor()def text_cursor(self):"""文本光标插入方法"""# 插入框架tc = self.te.textCursor()tff = QTextFrameFormat()tff.setBorder(10)tff.setBorderBrush(QColor(100, 50, 50))tff.setRightMargin(50)tc.insertFrame(tff)# 打印文档框架,文本框架中嵌套文本框架doc = self.te.document()root_from = doc.rootFrame()root_from.setFrameFormat(tff)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.2.6.4.1.2 应用场景

插入指定格式的内容元素

3.2.6.4.2 设置和合并格式
API功能
setBlockCharFormat(QTextCharFormat)
设置要格式化的当前块(或选择中包含的所有块)的块char 格式
setBlockFormat(QTextBlockFormat)
设置当前块的块格式(或选择中包含的所有块)以进行格式化
setCharFormat(QTextCharFormat)
将光标的当前字符格式设置为给定格式。如果光标有选择,则给定格式应用于当前选择
mergeBlockCharFormat(QTextCharFormat)
合并当前块的char格式
mergeBlockFormat(QTextBlockFormat)
合并当前块的格式
mergeCharFormat(QTextCharFormat)
合并当前字符格式
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()self.text_content_settings()self.format_setting_merging()def btn_click_test(self):# 设置格式合并self.format_setting_merging()def format_setting_merging(self):"""设置格式合并"""tc = self.te.textCursor()tcf = QTextCharFormat()tcf.setFontFamily('幼圆')tcf.setFontPointSize(30)tcf.setFontOverline(True)tcf.setFontUnderline(True)tc.setBlockCharFormat(tcf)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())
3.2.6.4.3 获取内容和格式相关
3.2.6.4.3.1 API
API功能
block() -> QTextBlock
获取光标所在的文本块
blockFormat() -> QTextBlockFormat
获取光标所在的文本块格式
blockCharFormat() -> QTextCharFormat
获取光标所在的文本块字符格式
blockNumber() -> int
获取光标所在的文本块编号
charFormat() -> QTextCharFormat
获取文本字符格式
currentFrame() -> QTextFrame
获取当前所在的框架
currentList() -> QTextList
获取当前所在的文本列表
currentTable() -> QTextTable
获取当前的表格
3.2.6.4.3.2 应用场景

通过文本光标获取当前所在的内容和格式信息

3.2.6.4.4 文本选中和清空

通过文本光标对象来操作输入框内容

名称API功能
选中
setPosition(int pos, QTextCursor.MoveMode=MoveAnchor)
设置光标位置(需要反向设置)
movePosition(QTextCursor.MoveOperation, QTextCursor.MoveMode=MoveAnchor, int n = 1)
移动指定长度后, 参照移动选项和模式确定最终位置以及是否选中文本(需要反向设置)
select(QTextCursor.SelectionType)
需要反向设置
选中内容获取
selectedText() -> str
-
selection() -> QTextDocumentFragment
-
selectedTableCells() -> (int firstRow, int numRows, int firstColumn, int numColumns)
-
选中位置获取
selectionStart() -> int
获取开始位置
selectionEnd() -> int
获取结束位置
清空和判定
clearSelection()
取消文本选中(需反向设置)
hasSelection() -> bool
是否有选中文本
选中文本移除
removeSelectedText()
移除选中的文本
参数API功能
QTextCursor.MoveMode
QTextCursor.MoveAnchor
将锚点移动到与光标本身相同的位置
QTextCursor.KeepAnchor
将锚固定在原处
QTextCursor.MoveOperation
QTextCursor.NoMove
将光标保持在原位
QTextCursor.Start
移至文档的开头
QTextCursor.StartOfLine
移动到当前行的开头
QTextCursor.StartOfBlock
移动到当前块的开头
QTextCursor.StartOfWord
移动到当前单词的开头
QTextCursor.PreviousBlock
移动到上一个块的开头
QTextCursor.PreviousCharacter
移至上一个字符
QTextCursor.PreviousWord
移到上一个单词的开头
QTextCursor.Up
向上移动一行
QTextCursor.Left
向左移动一个字符。
QTextCursor.WordLeft
向左移动一个单词
QTextCursor.End
移到文档的末尾
QTextCursor.EndOfLine
移动到当前行的末尾
QTextCursor.EndOfWord
移到当前单词的末尾
QTextCursor.EndOfBlock
移动到当前块的末尾
QTextCursor.NextBlock
移动到下一个块的开头
QTextCursor.NextCharacter
移动到下一个角色
QTextCursor.NextWord
转到下一个单词
QTextCursor.Down
向下移动一行
QTextCursor.Right
向右移动一个角色
QTextCursor.WordRight
向右移动一个单词
QTextCursor.NextCell
移动到当前表中下一个表格单元格的开头。如果当前单元格是行中的最后一个单元格,则光标将移动到下一行中的第一个单元格。
QTextCursor.PreviousCell
移动到当前表内的上一个表格单元格的开头。如果当前单元格是行中的第一个单元格,则光标将移动到上一行中的最后一个单元格。
QTextCursor.NextRow
移动到当前表中下一行的第一个新单元格。
QTextCursor.PreviousRow
移动到当前表中上一行的最后一个单元格
QTextCursor.SelectionType
QTextCursor.Document
选择整个文档
QTextCursor.BlockUnderCursor
选择光标下的文本块
QTextCursor.LineUnderCursor
选择光标下的文本行
QTextCursor.WordUnderCursor
选择光标下的单词。如果光标未定位在可选字符串中,则不选择任何文本。
3.2.6.4.5 删除内容

删除单个字符

API功能
deleteChar()
如果没有选中文本, 删除文本光标后一个字符;如果有选中文本, 则删除选中文本
deletePreviousChar()
如果没有选中文本, 删除文本光标前一个字符;如果有选中文本, 则删除选中文本
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.placeholder_prompt_text()def btn_click_test(self):"""按钮点击测试"""# 文本字符的删除self.deletion_of_text_characters()def deletion_of_text_characters(self):"""文本字符的删除"""tc = self.te.textCursor()tc.deleteChar()self.te.setFocus()def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())
3.2.6.4.6 文本光标位置判定获取

获取和判定光标的位置

API功能
atBlockEnd()
是否在文本块末尾
atBlockStart()
是否在文本块开始
atEnd()
是否在文档末尾
atStart()
是否在文档开始
columnNumber() -> int
在第几列
position()
光标位置
positionInBlock()
在文本块中的位置
# -*- coding: utf-8 -*-            
# @Time: 2025/1/10 16:20
# @File: 001-QTextEdit使用.py
# @Author: xujie.qu
# @Des:
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""按钮点击测试"""# 位置相关self.position_dependent()def position_dependent(self):"""位置相关"""tc = self.te.textCursor()print('是否在段尾:', tc.atBlockEnd())print('是否在段首:', tc.atBlockStart())print('是否在文档末尾:', tc.atEnd())print('是否在文档开始:', tc.atStart())print('在第几列:', tc.columnNumber())print('光标位置:', tc.position())print('光标在文本块的位置:', tc.positionInBlock())def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述
在这里插入图片描述

3.2.6.4.7 开始和结束编辑标识
  1. 指示文档上的编辑操作块的开始,
  2. 该操作应从撤消/重做的角度显示为单个操作。
API功能
beginEditBlock()
开始编辑标识
endEditBlock()
结束编辑标识

3.3 自动格式化

3.3.1 API

  1. setAutoFormatting(QTextEdit.AutoFormatting)
  2. autoFormatting() -> QTextEdit.AutoFormatting

3.3.2 参数QTextEdit.AutoFormatting

API功能
QTextEdit.AutoNone
不要做任何自动格式化
QTextEdit.AutoBulletList
自动创建项目符号列表(例如,当用户在最左侧列中输入星号('*')时,或在现有列表项中按Enter键
QTextEdit.AutoAll
应用所有自动格式。目前仅支持自动项目符号列表
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""按钮点击测试"""self.automatic_formatting()def automatic_formatting(self):"""设置自动格式化"""self.te.setAutoFormatting(QTextEdit.AutoBulletList)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.3.3 应用场景

输入一些特定字符, 会转换成为对应的效果

3.4 软换行模式

3.4.1 API

API功能
setLineWrapMode(QTextEdit.LineWrapMode)
设置软换行模式
lineWrapMode() -> QTextEdit.LineWrapMode
获取软换行模式
setWordWrapMode(self, QTextOption.WrapMode)
设置单词换行模式
wordWrapMode(self) -> QTextOption.WrapMode
获取单词换行模式

3.4.2 补充

名称API功能
QTextEdit.LineWrapMode
QTextEdit.NoWrap
没有软换行, 超过宽度后, 会产生水平滚动条
QTextEdit.WidgetWidth
以控件的宽度为限制,但会保持单词的完整性
QTextEdit.FixedPixelWidth
填充像素宽度,配合 setLineWrapColumnOrWidth(int)、 lineWrapColumnOrWidth() -> int
QTextEdit.FixedColumnWidth
填充列的宽度,配合 setLineWrapColumnOrWidth(int)、 lineWrapColumnOrWidth() -> int
QTextOption.WrapMode
QTextOption.NoWrap
文本根本没有包装
QTextOption.WordWrap
保持单词完整性
QTextOption.ManualWrap
与QTextOption.NoWrap相同
QTextOption.WrapAnywhere
宽度够了之后, 随意在任何位置换行
QTextOption.WrapAtWordBoundaryOrAnywhere
尽可能赶在单词的边界, 否则就在任意位置换行

3.4.3 应用场景

设置当用户输入内容过多时, 是否进行软换行, 以及如何进行软换行

from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""设置软换行模式"""self.soft_line_break_mode()def soft_line_break_mode(self):"""设置软换行模式"""# 设置没有软换行self.te.setLineWrapMode(QTextEdit.NoWrap)# 设置软换行像素为100px# self.te.setLineWrapMode(QTextEdit.FixedPixelWidth)# self.te.setLineWrapColumnOrWidth(100)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.5 覆盖模式

3.5.1 API

API功能
setOverwriteMode(bool)
设置覆盖模式
overwriteMode() -> bool
获取覆盖模式
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""设置软换行模式"""self.q_text_edit_test()def q_text_edit_test(self):"""设置覆盖模式"""self.te.setOverwriteMode(True)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

3.5.2 应用场景

切换覆盖模式, 修改文本内容

3.6 对齐方式

3.6.1 API

名称API功能
setAlignment(Qt.Alignment)
设置对齐方式
左对齐:Qt.AlignLeft
右对齐:Qt.AlignRight
居中对齐:Qt.AlignCenter

3.6.2 应用场景

设置当前段落的对齐方式

3.6.3 案例

from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""设置对齐方式"""self.q_text_edit_test()def q_text_edit_test(self):"""设置对齐方式"""self.te.setAlignment(Qt.AlignCenter)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.7 字体格式

3.7.1 API

名称API功能
字体家族
setFontFamily(family_str)
设置字体格式
fontFamily()
查询字体格式
QFontDialog.getFont()
查看可用字体(小技巧)
字体样式
setFontWeight(int)
设置字体粗细QFont.Thin、 QFont.ExtraLight、 QFont.Light、 QFont.Normal、 QFont.Medium、 QFont.DemiBold、 QFont.Bold、 QFont.ExtraBold、 QFont.Black
fontWeight()
查看字体粗细
setFontItalic(bool)
设置字体倾斜
fontItalic()
查看字体倾斜
字体尺寸
setFontPointSize(float)
设置字体尺寸
fontPointSize()
查看字体尺寸
字体效果
setFontUnderline(bool)
设置字体下划线
fontUnderline()
查看字体下划线
统一设置QFont
setCurrentFont(QFont)
统一设置QFont
currentFont() -> QFont
查看已设置的QFont
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""设置字体格式"""self.q_text_edit_test()def q_text_edit_test(self):"""设置字体格式"""# 查看字体格式# QFontDialog.getFont()# 设置字体家族self.te.setFontFamily('幼圆')# 设置字体粗细self.te.setFontWeight(QFont.Black)# 设置字体倾斜self.te.setFontItalic(True)# 设置字体大小self.te.setFontPointSize(30)# 设置字体效果self.te.setFontUnderline(True)# 设置统一字体格式# font = QFont()# font.setStrikeOut(True)# self.te.setCurrentFont(font)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.8 颜色设置

修改文本前景色以及背景色

名称API功能
背景颜色
setTextBackgroundColor(QColor)
将当前格式的文本背景颜色设置为指定颜色
textBackgroundColor() -> QColor
查询颜色设置
文本颜色
setTextColor(QColor)
将当前格式的文本颜色设置为指定颜色
textColor() -> QColor
查询文本颜色
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""设置字体颜色"""self.q_text_edit_test()def q_text_edit_test(self):"""设置字体颜色"""# 背景颜色self.te.setTextBackgroundColor(QColor(200, 10, 10))# 字体颜色self.te.setTextColor(QColor(10, 200, 10))def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.9 当前的字符格式

  1. 针对于部分字符, 设置特定的格式
  2. 将新文本插入格式时使用的char格式。
  3. 如果编辑器有选择的文本内容,则char格式直接应用于选择
API功能
setCurrentCharFormat(QTextCharFormat)
设置当前光标位置的字符格式
mergeCurrentCharFormat(QTextCharFormat)
将给定的格式与当前字符格式合并
currentCharFormat() -> QTextCharFormat
返回当前光标位置或选中文本的字符格式

3.9.1 QTextCharFormat

3.9.1.1 描述
  1. 提供了一种字符格式信息
  2. 文档中文本的字符格式指定文本的可视属性,以及有关其在超文本文档中的角色的信息
3.9.1.2 常用功能作用
3.9.1.2.1 字体
名称设置API获取API
统一设置
setFont(QFont)
font() -> QFont
字体家族
setFontFamily(family_str)
fontFamily() -> str
字体大小
setFontPointSize(float)
fontPointSize() -> float
字体粗细
setFontWeight(int)
fontWeight() -> int
字体上划线
setFontOverline(bool)
fontOverline() -> bool
字体中划线
setFontStrikeOut(bool)
fontStrikeOut() -> bool
字体下划线
setFontUnderline(bool)
fontUnderline() -> bool
字体大小写
setFontCapitalization(QFont.Capitalization)
fontCapitalization() -> QFont.Capitalization
字体颜色
setForeground(QColor(100, 200, 150))
-
超链接
setAnchorHref("http://www.itlike.com")
anchorHref() -> str
3.9.1.2.3 QFont字体大小写参数
参数功能
QFont.MixedCase
这是正常的文本呈现选项,不应用大写更改
QFont.AllUppercase
这会改变要以全大写类型呈现的文本
QFont.AllLowercase
这会改变要以全小写类型呈现的文本
QFont.SmallCaps
这会改变要以小型大写字母呈现的文本
QFont.Capitalize
这会将要呈现的文本更改为每个单词的第一个字符作为大写字符
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""设置字符格式"""self.q_text_edit_test()def q_text_edit_test(self):"""设置字符格式"""tcf = QTextCharFormat()tcf.setFontFamily('黑体')tcf.setFontPointSize(20)tcf.setFontCapitalization(QFont.Capitalize)tcf.setForeground(QColor(100, 200, 150))self.te.setCurrentCharFormat(tcf)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.10 常用编辑操作

常用内容文档编辑操作

API功能
copy()
复制文本
paste()
粘贴文本
canPaste() -> bool
是否可以粘贴文本
setUndoRedoEnabled(bool)
设置是否允许撤销/重做
redo()
重做
undo()
撤销
selectAll()
全选

3.11 查找

find(str, options: Union[QTextDocument.FindFlags, QTextDocument.FindFlag] = QTextDocument.FindFlags()) -> bool

参数功能
QTextDocument.FindBackward
向后搜索而不是向前搜索
QTextDocument.FindCaseSensitively
默认情况下,查找工作区不区分大小写,指定此选项会将行为更改为区分大小写的查找操作
QTextDocument.FindWholeWords
使查找匹配仅完整的单词
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)def btn_click_test(self):"""常用编辑操作"""self.q_text_edit_test()def q_text_edit_test(self):"""常用编辑操作"""# self.te.cut()# self.te.paste()# self.te.selectAll()# self.te.setFocus()# 查找self.te.find('123', QTextDocument.FindBackward)self.te.setFocus()def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

在这里插入图片描述

3.12 滚动

scrollToAnchor(p_str)

3.12.1 锚点设置

<a name=“锚点名称” href=“#锚点内容”> xxx </a>

from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.te.insertHtml("123"*300 + "<a name='xj' href='#xujie'>linfeng</a>" + "**xx"*200)def btn_click_test(self):"""滚动到锚点"""self.q_text_edit_test()def q_text_edit_test(self):"""滚动到锚点"""self.te.scrollToAnchor('xj')def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

点击按钮会滚动到设置的锚点的位置
在这里插入图片描述

3.13 只读设置

  1. setReadOnly(self, bool)
  2. isReadOnly() -> bool
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.te.insertHtml("123"*300 + "<a name='xj' href='#xujie'>linfeng</a>" + "**xx"*200)def btn_click_test(self):"""只读设置"""self.q_text_edit_test()def q_text_edit_test(self):"""只读设置"""self.te.setReadOnly(True)self.te.insertPlainText('xujie')def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

点击按钮之后,用户界面不可以输入内容,但是从代码可以增加内容
在这里插入图片描述

3.14 tab控制

名称API功能
setTabChangesFocus(bool)
控制Tab键位的功能, 是否是改变焦点
默认是False
setTabStopDistance(p_float)
制表位的距离
默认80(像素)
setTabStopWidth(p_int)
经测试, 同上
-
tabStopDistance(self) -> float
获取距离
-
tabStopWidth() -> int
获取宽度
-
from PyQt5.Qt import *import sysclass Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = QTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.te.insertHtml("123"*300 + "<a name='xj' href='#xujie'>linfeng</a>" + "**xx"*200)def btn_click_test(self):"""tab键位设置"""self.q_text_edit_test()def q_text_edit_test(self):"""tab键位设置"""self.te.setTabChangesFocus(True)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

点击按钮之后,使用tab键切换焦点
在这里插入图片描述

3.15 锚点获取

返回位置pos处的锚点的引用,如果该点处不存在锚点,则返回空字符串

  1. anchorAt(QPoint) -> str

3.15.1 案例

单击超链接后, 打开对应的网页
补充: QDesktopServices.openUrl(QUrl(urlString))----打开指定链接地址

from PyQt5.Qt import *import sysclass MyTextEdit(QTextEdit):def mousePressEvent(self, e):link_str = self.anchorAt(e.pos())if len(link_str) > 0:QDesktopServices.openUrl(QUrl(link_str))class Window(QWidget):def __init__(self):"""初始化函数"""super().__init__()self.setWindowTitle('QTextEdit使用')self.resize(500, 500)self.initUI()def initUI(self):"""初始化文本编辑器"""# 设计一个文本编辑器self.te = MyTextEdit(self)self.te.move(50, 50)self.te.resize(300, 300)self.te.setStyleSheet('background-color: cyan;')# 设计一个按钮self.btn = QPushButton(self)self.btn.move(10, 10)self.btn.setText('点击按钮')self.btn.clicked.connect(self.btn_click_test)self.te.insertHtml("123"*300 + "<a href='https://www.baidu.com'>linfeng</a>" + "**xx"*200)def btn_click_test(self):"""tab键位设置"""self.q_text_edit_test()def q_text_edit_test(self):"""tab键位设置"""self.te.setTabChangesFocus(True)def placeholder_prompt_text(self):"""占位提示符"""self.te.setPlaceholderText('QTextEdit...')if __name__ == '__main__':app = QApplication(sys.argv)window = Window()window.show()sys.exit(app.exec_())

4. 信号

API功能
textChanged()
文本内容发生改变时, 发射的信号
selectionChanged()
选中内容发生改变时, 发射的信号
cursorPositionChanged()
光标位置发生改变时, 发射的信号
currentCharFormatChanged(QTextCharFormat)
当前额字符格式发生改变时, 发射的信号
copyAvailable(bool yes)
复制可用时
redoAvailable(bool available)
重做可用时
undoAvailable(bool available)
撤销可用时

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com