1.描述
QPlainText和QTextEdit大致功能实现差不多,但针对纯文本处理进行了优化,继承自QAbstractScrollArea
2.功能作用
(1) 构造函数
QPlainTextEdit(parent: QWidget = None)
QPlainTextEdit(str, parent: QWidget = None)
(2) 占位提示文本
setPlaceholderText(str)
placeholderText() -> str
(3) 只读设置
setReadOnly(bool)
isReadOnly() -> bool
(4) 格式
currentCharFormat() -> QTextCharFormat
setCurrentCharFormat(QTextCharFormat)
mergeCurrentCharFormat(QTextCharFormat)
(5) 软换行模式
lineWrapMode() -> QPlainTextEdit.LineWrapMode
setLineWrapMode(QPlainTextEdit.LineWrapMode)
"""
QPlainTextEdit.LineWrapMode
QPlainTextEdit.NoWrap
没有软换行
QPlainTextEdit.WidgetWidth
超出控件宽度进行自动换行
"""
(6) 覆盖模式
# 控制是否采用覆盖模式编辑文本
overwriteMode() -> bool
setOverwriteMode(bool)
(7) Tab控制
setTabChangesFocus(bool)
setTabStopDistance(distance_float)
tabChangesFocus() -> bool
tabStopDistance() -> float
(8) 文本操作
setPlainText(text_str) # 设置普通文本内容
insertPlainText(text_str) # 插入普通文本
appendPlainText(text_str) # 追加普通文本
appendHtml(html_str) # 追加HTML字符串,但不是所有的标签都支持
toPlainText() # 转换成纯文本
(9) 块操作
blockCount() -> int # 当前块个数
maximumBlockCount() -> int # 最大块个数
setMaximumBlockCount(int) # 设置最大块个数
(10)常用编辑操作
selectAll() # 选中所有
copy() # 复制选中文本
cut() # 剪切选中文本
paste() # 粘贴文本
canPaste() -> bool # 判定是否可以粘贴
clear() # 清空内容
redo() # 重做
isUndoRedoEnabled() -> bool # 判定撤销重做是否可用
setUndoRedoEnabled(bool) # 设置撤销重做是否可用
undo() # 撤销
find(str, QTextDocument.FindFlags) -> bool
"""
QTextDocument.FindBackward
向后搜索而不是向前搜索。
QTextDocument.FindCaseSensitively
默认情况下,查找工作区不区分大小写。
指定此选项会将行为更改为区分大小写的查找操作。
QTextDocument.FindWholeWords
使查找匹配仅完整的单词。
"""
zoomIn(int range = 1) # 放大缩小:range > 0是放大,range < 0是缩小
(11) 滚动
centerCursor() # 控制光标, 尽可能保证光标在文本框中间
ensureCursorVisible() # 滚动控件, 确保光标可见
setCenterOnScroll(bool) # True表示, 控制光标(包括尾部), 显示时能够展示在中间位置
centerOnScroll() -> bool
(12) 光标
textCursor() -> QTextCursor # 获取文本光标对象
cursorForPosition(QPoint) -> QTextCursor # 获取指定位置的文本光标对象
cursorWidth() -> int # 获取文本光标宽度
setCursorWidth(int) # 设置文本光标宽度
cursorRect() -> QRect # 获取文本光标矩形
cursorRect(QTextCursor) # 获取指定光标对象的矩形
moveCursor(QTextCursor.MoveOperation,QTextCursor.MoveMode)
"""
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.MoveMode
QTextCursor.MoveAnchor
将锚点移动到与光标本身相同的位置。
QTextCursor.KeepAnchor
将锚固定在原处。
"""
3.信号
textChanged() # 文本改变时
selectionChanged() # 选中内容改变时
modificationChanged(bool) # 编辑状态改变时
cursorPositionChanged() # 光标位置改变时
blockCountChanged(int) # 块的个数发生改变时
updateRequest(QRect rect, int dy) # 内容更新请求时
copyAvailable(bool) # 复制可用时
redoAvailable(bool) # 重做可用时
undoAvailable(bool) # 撤销可用时