36- 输入和显示-多行文本控件QTextEdit

多行文本控件QTextEdit

多行文本控件可以用于编辑和显示多行文本和图片,并可对文本进行格式化。

多行文本编辑控件有QTextEdit 和QPlainTextEdit 两种,QTextEdit 和QPlainTextEdit 都是直接继承自QAbstractScrollArea。

QAbstractScrollArea 为其子类提供中心视口(viewport)控件,从而保证子类显示的内容超过控件窗口的范围时,提供竖直和水平滚动条。QTextEdit 是主要用于显示并编辑多行文本的控件,支持富文本,当文本内容超出控件显示范围时,可以显示水平和竖直滚动条。

QTextEdit 不仅可以用来显示文本,还可以用来显示html文档。用QTextEdit类创建实例的方法如下,其中 :

  • parent 是 QTextEdit 所在的窗口或容器类控件
  • text 是要显示的文本内容。

QTextEdit 可以显示、输入和编辑文本。另外还有个从QTextEdit 继承的类QTextBrowser,通常只用于显示文本。

from PySide6.QtWidgets import QTextEdit

QTextEdit(parent: Union[PySide6.QtWidgets.QWidget,NoneType]=None)-> None
QTextEdit(text: str,parent: Union[PySide6.QtWidgets.QWidget,NoneType]=None)-> None

用父父级构造一个空的QTextEdit。
用父父级构造QTextEdit。文本编辑将显示文本。文本被解释为html。

多行文本控件QTextEdit属性

属性描述功能访问
acceptRichText: bool此属性包含文本编辑是否接受用户的富文本插入。
当此属性设置为false text edit时,将仅接受来自用户的纯文本输入。例如通过剪贴板或拖放。
此属性的默认值为true。
acceptRichText ()

setAcceptRichText (accept)
autoFormatting: AutoFormatting此属性保存启用的一组自动格式化功能。
该值可以是AutoFormattingFlag枚举中的值的任意组合。默认为AutoNone。选择AutoAll启用所有自动格式化。
目前,唯一提供的自动格式化功能是AutoBulletList; Qt的未来版本可能会提供更多。
autoFormatting ()

setAutoFormatting (features)
cursorWidth: int此属性指定光标的宽度 (以像素为单位)。默认值为1。cursorWidth ()

setCursorWidth (width)
document: PySide6.QtGui.QTextDocument此属性持有文本编辑器的基础文档。
除非文档是文档的父对象,否则编辑器不会拥有文档的所有权。提供的文档的父对象仍然是该对象的所有者。如果先前分配的文档是编辑器的子文档,则将其删除。
document ()

setDocument (document)
documentTitle: str此属性包含从文本解析的文档的标题。
默认情况下,对于新创建的空文档,此属性包含一个空字符串。
documentTitle ()

setDocumentTitle (title)
html: str此属性为文本编辑提供了一个HTML接口。
toHtml() 返回文本编辑为html的文本。
setHtml() 更改文本编辑的文本。删除任何先前的文本,并清除撤消/重做历史记录。输入文本被解释为html格式的富文本。currentCharFormat() 也被重置,除非textCursor() 已经在文档的开头。
调用方有责任确保在创建包含HTML的QString并将其传递给setHtml() 时正确解码文本。
默认情况下,对于新创建的空文档,此属性包含文本以描述没有正文的HTML 4.0文档。
toHtml ()

setHtml (text)

Signal textChanged ()
lineWrapColumnOrWidth: int此属性保留将包装文本的位置 (取决于换行模式,以像素或列为单位)。
如果换行模式为FixedPixelWidth,则该值是从文本编辑的左边缘开始的像素数,在该位置应换行文本。如果换行模式为FixedColumnWidth,则该值为文本编辑左边缘的列号 (在字符列中),应在该文本处换行。
默认情况下,此属性包含的值为0。
lineWrapColumnOrWidth ()

setLineWrapColumnOrWidth (w)
lineWrapMode: LineWrapMode此属性保留换行模式。
默认模式是WidgetWidth,这会导致单词在文本编辑的右边缘包装。换行以空格进行,保持整个单词完整。如果要在单词中进行换行,请使用setWordWrapMode()。如果设置FixedPixelWidth或FixedColumnWidth的换行模式,则还应使用所需的宽度调用setlinewrapcolumcolumnorwidth ()。
lineWrapMode ()

setLineWrapMode (mode)
markdown: str此属性为文本编辑的文本提供了Markdown接口。
toMarkdown() 返回文本编辑的文本为 “纯” Markdown,没有任何嵌入的HTML格式。QTextDocument支持的某些功能 (例如使用特定颜色和命名字体) 不能用 “纯” Markdown表示,它们将被省略。
setMarkdown() 更改文本编辑的文本。删除任何先前的文本,并清除撤消/重做历史记录。输入文本被解释为Markdown格式的富文本。
markdown字符串中包含的HTML的解析与setHtml中的处理方式相同; 但是,不支持HTML块中的Markdown格式。
可以通过功能参数启用或禁用解析器的某些功能:
MarkdownNoHTML
Markdown文本中的任何HTML标签都将被丢弃
默认为MarkdownDialectGitHub。
toMarkdown ([features=QTextDocument.MarkdownDialectGitHub])

setMarkdown (markdown)

Signal textChanged ()
overwriteMode: bool此属性保存用户输入的文本是否会覆盖现有文本。
与许多文本编辑器一样,可以将文本编辑器小部件配置为使用用户输入的新文本插入或覆盖现有文本。
如果此属性为true,则新文本将覆盖现有文本,以字符为字符; 否则,将在光标位置插入文本,从而替换现有文本。
默认情况下,此属性为false (新文本不会覆盖现有文本)。
overwriteMode ()

setOverwriteMode (overwrite)
placeholderText: str此属性保存编辑器占位符文本。
设置此属性使编辑器显示一个灰色的占位符文本,只要文档 () 为空。
默认情况下,此属性包含一个空字符串。
placeholderText ()

setPlaceholderText (placeholderText)
plainText: str此属性将文本编辑器的内容保留为纯文本。
设置属性时,将删除先前的内容,并重置撤消/重做历史记录。currentCharFormat() 也被重置,除非textCursor() 已经在文档的开头。
如果文本编辑具有另一种内容类型,则如果调用toPlainText(),它将不会被纯文本替换。唯一的例外是将转换为标准空间的非中断空间nbsp;。
默认情况下,对于没有内容的编辑器,此属性包含一个空字符串。
toPlainText ()

setPlainText (text)
readOnly: bool此属性保存文本编辑是否为只读。
在只读文本编辑中,用户只能浏览文本并选择文本; 修改文本是不可能的。
此属性的默认值为false。
isReadOnly ()

setReadOnly (ro)
tabChangesFocus: bool无论选项卡更改焦点还是被接受为输入,此属性都将保留。
在某些情况下,文本编辑不应允许用户输入制表符或使用Tab键更改缩进,因为这会破坏焦点链。默认值为false。
tabChangesFocus ()

setTabChangesFocus (b)
tabStopDistance: float此属性保持标签停止距离 (以像素为单位)。
默认情况下,此属性包含80像素的值。
不要设置小于VisualTabCharacter字符的horizontalAdvance() 的值,否则制表符将不完全绘制。
tabStopDistance ()

setTabStopDistance (distance)
textInteractionFlags: TextInteractionFlags指定小部件应如何与用户输入交互。
默认值取决于QTextEdit是只读的还是可编辑的,以及它是否是QTextBrowser。
textInteractionFlags ()

setTextInteractionFlags (flags)
undoRedoEnabled: bool此属性保留是否启用了撤消和重做。
如果此属性为true,并且存在可以撤消 (或重做) 的操作,则用户只能撤消或重做操作。
isUndoRedoEnabled ()

setUndoRedoEnabled (enable)

多行文本控件QTextEdit的常用方法

  • PySide6.QtWidgets.QTextEdit.LineWrapMode

    ConstantDescription
    QTextEdit.NoWrap
    QTextEdit.WidgetWidth
    QTextEdit.FixedPixelWidth固定像素宽度
    QTextEdit.FixedColumnWidth固定列宽
  • PySide6.QtWidgets.QTextEdit.AutoFormattingFlag

    ConstantDescription
    QTextEdit.AutoNone(继承enum.Flag) 不要做任何自动格式化。
    QTextEdit.AutoBulletList自动创建项目符号列表 (例如,当用户在最左边的列中输入星号 (‘*’),或在现有列表项中按Enter键时。
    QTextEdit.AutoAll应用所有自动格式化。目前仅支持自动项目符号列表。
  • PySide6.QtDesigner.QDesignerFormWindowCursorInterface.MoveOperation
    此枚举描述窗体窗口中可能发生的文本光标操作的类型。

    ConstantDescription
    QDesignerFormWindowCursorInterface.NoMove光标不移动。
    QDesignerFormWindowCursorInterface.Start将光标移动到焦点链的起点。
    QDesignerFormWindowCursorInterface.End将光标移动到焦点链的末尾。
    QDesignerFormWindowCursorInterface.Next将光标移动到焦点链中的下一个小组件。
    QDesignerFormWindowCursorInterface.Prev将光标移动到焦点链中的上一个构件。
    QDesignerFormWindowCursorInterface.Left光标向左移动。
    QDesignerFormWindowCursorInterface.Right光标向右移动。
    QDesignerFormWindowCursorInterface.Up光标向上移动。
    QDesignerFormWindowCursorInterface.down光标向下移动。
  • PySide6.QtDesigner.QDesignerFormWindowCursorInterface.MoveMode
    此枚举描述文本光标移动时使用的不同模式。

    ConstantDescription
    QDesignerFormWindowCursorInterface.MoveAnchor锚点随光标移动到其新位置。
    QDesignerFormWindowCursorInterface.KeepAnchor定位点保留在光标的旧位置。
  • PySide6.QtCore.Qt.InputMethodQuery

    ConstantDescription
    Qt.ImEnabled(继承enum.Flag) 小部件接受输入法输入。
    Qt.ImCursorRectangle以小部件坐标覆盖输入光标区域的矩形。
    Qt.ImFont当前用于文本输入的字体。
    Qt.ImCursorPosition光标在输入区域周围的文本中的逻辑位置 (请参阅ImSurroundingText)。该位置不包含由游标控制的预编辑区域内游标的偏移量。
    Qt.ImSurroundingText输入区域周围的纯文本,例如当前段落。
    Qt.ImCurrentSelection当前选择的文本。
    Qt.ImMaximumTextLength小部件可以容纳的最大字符数。如果没有限制,则返回QVariant()。
    Qt.ImAnchorPosition选择锚的位置。这可能小于或大于ImCursorPosition,这取决于光标在选择的哪一侧。如果没有选择,则返回与ImCursorPosition相同。
    Qt.ImHints输入方法对预期输入的提示。(请参阅输入方法提示)
    Qt.ImPreferredLanguage首选的输入语言。
    Qt.ImPlatformData输入法的平台特定数据。
    Qt.ImAbsolutePosition游标在整个文档中的逻辑位置。该位置不包含由游标控制的预编辑区域内游标的偏移量。
    Qt.ImTextBeforeCursor光标前的纯文本。小部件可以决定要返回多少文本,但是除非光标位于文档的开头,否则不得返回空字符串。
    Qt.ImTextAfterCursor光标后的纯文本。小部件可以决定要返回多少文本,但是除非光标位于文档的末尾,否则不得返回空字符串。
    Qt.ImEnterKeyTypeEnter键类型。
    Qt.ImAnchorRectangle选择锚的边界矩形。此值在Qt 5.7中添加。
    Qt.ImInputItemClipRectangle实际暴露的输入项矩形。输入项的部分可能会被剪切。此值将考虑裁剪,并返回实际绘制的项目矩形。矩形在小部件坐标中。
    Qt.ImReadOnly小部件是只读的。此值在Qt 6.2中添加。

    Masks:

    ConstantDescription
    Qt.ImQueryInputCommonly changed properties on input.
    Qt.ImQueryAllQuery for all input method properties.

多行文本控件QTextEdit 的常用方法如表所示,用这些方法可以编写文字处理工具。

  • QTextEdit通常用setPlainText(str)方法设置纯文本;
    • 用setHtml(str)方法设置 html格式的文本;
    • 用toPlainText()方法获取纯文本,
    • 用toHtml()方法获取 tml格式的文本
    • 用append(str)方法在末尾追加文本;
    • 用insertPlainText(str)和isertHtml(str)方法在光标处插入纯文本和 html格式文本;
    • 用setReadOnly(bool)方法可以设置成只读模式,这时用户不能输入数据;
    • 用setCurrentCharFormat(QTextCharFormat)方法设置当前的文本格式
    • 用setTextCuror(QTextCursor)方法设置文档中的光标,可以在光标处插入文字、图像表格选择文字;
    • 用setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy)方法和 setVerticalScrollBarPolicy(Qt ScrollBarPolicy)方法可以分别设置水平滚动条和竖直滚动条的调整策略,枚举值 Qt.ScrollBarPolicy 可取:
      • Qt.ScrollBarAsNeeded
      • Qt.ScrollBarAlwaysOff
      • Qt.ScrollBarAlwaysOn;
    • QTextEdit显示的内容是一个QTextDocument文档,用setDocument(QTextDocument)方法可以对文档进行设置。
方法描述
acceptRichText() -> bool此属性包含文本编辑是否接受用户的富文本插入。
当此属性设置为false text edit时,将仅接受来自用户的纯文本输入。例如通过剪贴板或拖放。
此属性的默认值为true。
alignment() -> PySide6.QtCore.Qt.AlignmentFlag返回当前段落的对齐方式。
anchorAt(pos: PySide6.QtCore.QPoint) -> str返回位置pos处的锚点的引用,如果在该点上不存在锚点,则返回空字符串。
autoFormatting() -> PySide6.QtWidgets.QTextEdit.AutoFormattingFlag获取自动格式化属性autoFormatting
canPaste() -> bool返回是否可以将文本从剪贴板粘贴到textedit中。
createStandardContextMenu() -> PySide6.QtWidgets.QMenu
createStandardContextMenu(position: PySide6.QtCore.QPoint) -> PySide6.QtWidgets.QMenu
此功能创建标准上下文菜单,当用户使用鼠标右键单击文本编辑时显示该菜单。它是从默认的contextMenuEvent() 处理程序调用的。弹出菜单的所有权转移给呼叫者。我们建议您使用createStandardContextMenu( QPoint) 版本,该版本将启用对用户单击位置敏感的操作。

此功能创建标准上下文菜单,当用户使用鼠标右键单击文本编辑时显示该菜单。它是从默认的contextMenuEvent() 处理程序中调用的,它在文档坐标中使用鼠标单击的位置。这可以启用对用户单击的位置敏感的操作。弹出菜单的所有权转移给呼叫者。
currentCharFormat() -> PySide6.QtGui.QTextCharFormat返回插入新文本时使用的char格式。
currentFont() -> PySide6.QtGui.QFont返回当前格式的字体。
cursorForPosition(pos: PySide6.QtCore.QPoint) -> PySide6.QtGui.QTextCursor返回位置pos处的QTextCursor (以视口坐标表示)。
cursorRect() -> PySide6.QtCore.QRect
cursorRect(cursor: PySide6.QtGui.QTextCursor) -> PySide6.QtCore.QRect
返回一个包含文本编辑的光标的矩形 (在视口坐标中)。
返回一个包含光标的矩形 (在视口坐标中)。
cursorWidth() -> int获取光标的宽度属性cursorWidth
document() -> PySide6.QtGui.QTextDocument获取document属性
documentTitle() -> str获取标题属性documentTitle
ensureCursorVisible()如有必要,通过滚动文本编辑来确保光标可见。
extraSelections() -> List[PySide6.QtWidgets.QTextEdit.ExtraSelection]返回先前设置的额外选择。
find(exp: str, options: PySide6.QtGui.QTextDocument.FindFlag = Default(QTextDocument.FindFlags)) -> bool
find(exp: Union[PySide6.QtCore.QRegularExpression, str], options: PySide6.QtGui.QTextDocument.FindFlag = Default(QTextDocument.FindFlags)) -> bool
这是一个重载函数。使用给定的选项查找下一个事件,匹配正则表达式exp。对于此重载,findcasesentiular选项将被忽略,请改用CaseInsensitiveOption。

如果找到匹配项,则返回true,并更改光标以选择匹配项; 否则返回false。
使用给定的选项查找字符串exp的下一个出现。如果找到exp,则返回true,并更改光标以选择匹配项; 否则返回false。
fontFamily() -> str返回当前格式的字体族。
fontItalic() -> bool如果当前格式的字体为斜体,则返回true; 否则返回false。
fontPointSize() -> float返回当前格式字体的点大小。
fontUnderline() -> bool如果当前格式的字体带有下划线,则返回true; 否则返回false。
fontWeight() -> int返回当前格式的字体粗细。
inputMethodQuery(property: PySide6.QtCore.Qt.InputMethodQuery) -> Any
inputMethodQuery(query: PySide6.QtCore.Qt.InputMethodQuery, argument: Any) -> Any
输入方法查询
isReadOnly() -> bool获取只读属性readOnly
isUndoRedoEnabled() -> bool获取是否启用撤销和重做
lineWrapColumnOrWidth() -> int获取属性lineWrapColumnOrWidth
lineWrapMode() -> PySide6.QtWidgets.QTextEdit.LineWrapMode获取是否开启换行属性LineWrapMode
mergeCurrentCharFormat(modifier: PySide6.QtGui.QTextCharFormat)通过在编辑器的光标上调用mergeCharFormat,将修饰符中指定的属性合并为当前字符格式。如果编辑器具有选择,则将修改器的属性直接应用于选择。
moveCursor(operation: PySide6.QtGui.QTextCursor.MoveOperation, mode: PySide6.QtGui.QTextCursor.MoveMode = Instance(PySide6.QtGui.QTextCursor.MoveAnchor))通过执行给定的操作来移动光标。
如果模式是KeepAnchor,光标选择它移动的文本。这与用户按住Shift键并用光标键移动光标时获得的效果相同。
overwriteMode() -> bool获取属性overwriteMode
此属性保存用户输入的文本是否会覆盖现有文本。
与许多文本编辑器一样,可以将文本编辑器小部件配置为使用用户输入的新文本插入或覆盖现有文本。
如果此属性为true,则新文本将覆盖现有文本,以字符为字符; 否则,将在光标位置插入文本,从而替换现有文本。
默认情况下,此属性为false (新文本不会覆盖现有文本)。
placeholderText() -> str获取属性placeholderText
此属性保存编辑器占位符文本。
设置此属性使编辑器显示一个灰色的占位符文本,只要文档 () 为空。
默认情况下,此属性包含一个空字符串。
print_(printer: PySide6.QtGui.QPagedPaintDevice)
setAcceptRichText(accept: bool)设置属性acceptRichText
此属性包含文本编辑是否接受用户的富文本插入。
当此属性设置为false text edit时,将仅接受来自用户的纯文本输入。例如通过剪贴板或拖放。
此属性的默认值为true。
setAutoFormatting(features: PySide6.QtWidgets.QTextEdit.AutoFormattingFlag)设置属性autoFormatting
此属性保存启用的一组自动格式化功能。
该值可以是AutoFormattingFlag枚举中的值的任意组合。默认为AutoNone。选择AutoAll启用所有自动格式化。
目前,唯一提供的自动格式化功能是AutoBulletList; Qt的未来版本可能会提供更多。
setCurrentCharFormat(format: PySide6.QtGui.QTextCharFormat)通过调用编辑器光标上的setCharFormat(),将插入新文本时使用的char格式设置为format。如果编辑器具有选择,则char格式将直接应用于选择。
setCursorWidth(width: int)cursorWidth: int
此属性指定光标的宽度 (以像素为单位)。默认值为1。
setDocument(document: PySide6.QtGui.QTextDocument)document: PySide6.QtGui.QTextDocument
此属性持有文本编辑器的基础文档。
setDocumentTitle(title: str)documentTitle: str
此属性包含从文本解析的文档的标题。
默认情况下,对于新创建的空文档,此属性包含一个空字符串。
setExtraSelections(selections: Sequence[PySide6.QtWidgets.QTextEdit.ExtraSelection])此功能允许使用指定为选择的给定颜色临时标记文档中的某些区域。例如,在编程编辑器中,使用给定的背景颜色标记整行文本以指示断点的存在,这可能很有用。
setLineWrapColumnOrWidth(w: int)lineWrapColumnOrWidth: int
此属性保留将包装文本的位置 (取决于换行模式,以像素或列为单位)。
如果换行模式为FixedPixelWidth,则该值是从文本编辑的左边缘开始的像素数,在该位置应换行文本。如果换行模式为FixedColumnWidth,则该值为文本编辑左边缘的列号 (在字符列中),应在该文本处换行。
默认情况下,此属性包含的值为0。
setLineWrapMode(mode: PySide6.QtWidgets.QTextEdit.LineWrapMode)lineWrapMode: LineWrapMode
此属性保留换行模式。
默认模式是WidgetWidth,这会导致单词在文本编辑的右边缘包装。换行以空格进行,保持整个单词完整。如果要在单词中进行换行,请使用setWordWrapMode()。如果设置FixedPixelWidth或FixedColumnWidth的换行模式,则还应使用所需的宽度调用setlinewrapcolumcolumnorwidth ()。
setOverwriteMode(overwrite: bool)overwriteMode: bool
此属性保存用户输入的文本是否会覆盖现有文本。
与许多文本编辑器一样,可以将文本编辑器小部件配置为使用用户输入的新文本插入或覆盖现有文本。
如果此属性为true,则新文本将覆盖现有文本,以字符为字符; 否则,将在光标位置插入文本,从而替换现有文本。
默认情况下,此属性为false (新文本不会覆盖现有文本)。
setPlaceholderText(placeholderText: str)placeholderText: str
此属性保存编辑器占位符文本。
设置此属性使编辑器显示一个灰色的占位符文本,只要文档 () 为空。
默认情况下,此属性包含一个空字符串。
setReadOnly(ro: bool)readOnly: bool
此属性保存文本编辑是否为只读。
在只读文本编辑中,用户只能浏览文本并选择文本; 修改文本是不可能的。
此属性的默认值为false。
setTabChangesFocus(b: bool)tabChangesFocus: bool
无论选项卡更改焦点还是被接受为输入,此属性都将保留。
在某些情况下,文本编辑不应允许用户输入制表符或使用Tab键更改缩进,因为这会破坏焦点链。默认值为false。
setTabStopDistance(distance: float)tabStopDistance: float
此属性保持标签停止距离 (以像素为单位)。
默认情况下,此属性包含80像素的值。
不要设置小于VisualTabCharacter字符的horizontalAdvance() 的值,否则制表符将不完全绘制。
setTextCursor(cursor: PySide6.QtGui.QTextCursor)设置可见光标。
setTextInteractionFlags(flags: PySide6.QtCore.Qt.TextInteractionFlag)属性textInteractionFlags的设置器。
setUndoRedoEnabled(enable: bool)undoRedoEnabled: bool
此属性保留是否启用了撤消和重做。
如果此属性为true,并且存在可以撤消 (或重做) 的操作,则用户只能撤消或重做操作。
setWordWrapMode(policy: PySide6.QtGui.QTextOption.WrapMode)设置文字包装模式
tabChangesFocus() -> booltabChangesFocus: bool
无论选项卡更改焦点还是被接受为输入,此属性都将保留。
在某些情况下,文本编辑不应允许用户输入制表符或使用Tab键更改缩进,因为这会破坏焦点链。默认值为false。
tabStopDistance() -> floattabStopDistance: float
此属性保持标签停止距离 (以像素为单位)。
默认情况下,此属性包含80像素的值。
不要设置小于VisualTabCharacter字符的horizontalAdvance() 的值,否则制表符将不完全绘制。
textBackgroundColor() -> PySide6.QtGui.QColor将当前格式的文本背景颜色设置为c。
textColor() -> PySide6.QtGui.QColor返回当前格式的文本颜色。
textCursor() -> PySide6.QtGui.QTextCursor返回表示当前可见游标的QTextCursor的副本。请注意,返回的游标上的更改不会影响QTextEdit的游标; 使用setTextCursor() 更新可见游标。
textInteractionFlags() -> PySide6.QtCore.Qt.TextInteractionFlagtextInteractionFlags: TextInteractionFlags
指定小部件应如何与用户输入交互。
默认值取决于QTextEdit是只读的还是可编辑的,以及它是否是QTextBrowser。
toHtml() -> strhtml: str
此属性为文本编辑提供了一个HTML接口。
toHtml() 返回文本编辑为html的文本。
setHtml() 更改文本编辑的文本。删除任何先前的文本,并清除撤消/重做历史记录。输入文本被解释为html格式的富文本。currentCharFormat() 也被重置,除非textCursor() 已经在文档的开头。
toMarkdown(features: PySide6.QtGui.QTextDocument.MarkdownFeature = Instance(PySide6.QtGui.QTextDocument.MarkdownDialectGitHub)) -> str将文本编辑的文本作为markdown返回。
toPlainText() -> strQString QTextEdit::toPlainText() const
将文本编辑的文本作为纯文本返回。
wordWrapMode() -> PySide6.QtGui.QTextOption.WrapMode指定文本换行的类型。
zoomInF(range: float)
canInsertFromMimeData(source: PySide6.QtCore.QMimeData) -> bool如果可以解码由source指定的MIME数据对象的内容并将其插入文档中,则此函数返回true。例如,当在拖动操作期间鼠标进入此小部件并且有必要确定是否可以接受拖放操作时,会调用它。
重新实现此功能以启用对其他MIME类型的拖放支持。
createMimeDataFromSelection() -> PySide6.QtCore.QMimeData此函数返回一个新的MIME数据对象来表示文本编辑的当前选择的内容。当需要将选择封装到新的QMimeData对象中时,将其调用; 例如,当开始拖放操作时,或者将数据复制到剪贴板时。
如果重新实现此功能,请注意,返回的QMimeData对象的所有权将传递给调用者。可以使用textCursor() 函数检索选择。
doSetTextCursor(cursor: PySide6.QtGui.QTextCursor)
insertFromMimeData(source: PySide6.QtCore.QMimeData)此函数将源指定的MIME数据对象的内容插入到当前光标位置的文本编辑中。每当作为剪贴板粘贴操作的结果插入文本时,或者当文本编辑接受来自拖放操作的数据时,就会调用它。
重新实现此功能以启用对其他MIME类型的拖放支持。
loadResource(type: int, name: Union[PySide6.QtCore.QUrl, str]) -> Any加载由给定类型和名称指定的资源。
这个函数是loadResource() 的扩展。
[slot]append(text: str)在文本编辑的末尾附加一个带有文本的新段落。
附加的新段落将具有与当前段落相同的字符格式和块格式,由光标的位置决定。
[slot]clear()删除文本编辑中的所有文本。
注:
撤消/重做历史记录也被清除。
currentCharFormat() 被重置,除非textCursor() 已经在文档的开头。
[slot]copy()将任何选定的文本复制到剪贴板。
[slot]cut()将所选文本复制到剪贴板,并从文本编辑中删除。
如果没有选定的文本,则不会发生任何事情。
[slot]insertHtml(text: str)便利槽,在当前光标位置插入假定为html格式的文本。
相当于:
edit.textCursor().insertHtml(fragment)
[slot]insertPlainText(text: str)在当前光标位置插入文本的便利槽。
相当于
edit.textCursor().insertText(text)
[slot]paste()将剪贴板中的文本粘贴到当前光标位置的文本编辑中。
如果剪贴板中没有文本,则不会发生任何事情。
要更改此函数的行为,即修改QTextEdit可以粘贴的内容以及粘贴方式,请重新实现虚拟canInsertFromMimeData() 和insertFromMimeData() 函数。
[slot]redo()重做最后一次操作。
如果没有重做的操作,即在撤消/重做历史记录中没有重做步骤,则什么也不会发生。
[slot]scrollToAnchor(name: str)滚动文本编辑,以便具有给定名称的锚是可见的; 如果名称为空,或者已经可见,或者找不到,则什么也不做。
[slot]selectAll()选择所有文本。
[slot]setAlignment(a: PySide6.QtCore.Qt.AlignmentFlag)将当前段落的对齐方式设置为a。有效对齐方式为AlignLeft,AlignRight,alignjusty和AlignCenter (水平居中)。
[slot]setCurrentFont(f: Union[PySide6.QtGui.QFont, str, Sequence[str]])将当前格式的字体设置为f。
[slot]setFontFamily(fontFamily: str)将当前格式的字体族设置为fontffamily。
[slot]setFontItalic(b: bool)如果斜体为true,则将当前格式设置为斜体; 否则将当前格式设置为非斜体。
[slot]setFontPointSize(s: float)将当前格式的点大小设置为s。
请注意,如果s为零或为负,则未定义此函数的行为。
[slot]setFontUnderline(b: bool)如果下划线为true,则将当前格式设置为下划线; 否则将当前格式设置为非下划线。
[slot]setFontWeight(w: int)将当前格式的字体粗细设置为给定的粗细,其中使用的值在粗细枚举定义的范围内。
[slot]setHtml(text: str)QTextEdit.html: str
此属性为文本编辑提供了一个HTML接口。
[slot]setMarkdown(markdown: str)markdown: str
设置markdown
[slot]setPlainText(text: str)将文本编辑的文本更改为字符串文本。任何以前的文本都被删除。
注:
文本被解释为纯文本。
撤消/重做历史记录也被清除。
currentCharFormat() 被重置,除非textCursor() 已经在文档的开头。
[slot]setText(text: str)设置文本编辑的文本。文本可以是纯文本或HTML,文本编辑将尝试猜测正确的格式。
直接使用setHtml() 或setPlainText() 避免文字编辑的猜测。
[slot]setTextBackgroundColor(c: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int])将当前格式的文本背景颜色设置为c。
[slot]setTextColor(c: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int])将当前格式的文本颜色设置为c。
[slot]undo()取消最后一次操作。
如果没有要撤消的操作,即在撤消/重做历史记录中没有撤消步骤,则什么也不会发生。
[slot]zoomIn(range: int = 1)放大文本,使基本字体大小范围点更大,并重新计算所有字体大小为新大小。这不会改变任何图像的大小。
[slot]zoomOut(range: int = 1)通过缩小基本字体大小范围点并重新计算所有字体大小为新大小来缩小文本。这不会改变任何图像的大小。
QTextEdit的方法及参数类型返回值的类型说明
[slot]setText(str)None设置显示的文字
[slot]append(str)None添加文本
[slot]setPlainText(str)None设置纯文本文字
[slot]setHtml(strNone设置成html格式的文字
[slot]insert Html(str)None插入html格式的文本
[slot]insertPlainText(str)None插入文本
toHtml()str获取html格式的文字
toPlainText()str获取纯文本文字
createStandardContextMenu([QPoint])QMenu创建标准的右键快捷菜单
setCurrentCharFormat(QtextCharFormat:PySide6.QtGui.QTextCharFormat)None设置当前的文本格式
find(str)bool查找,若找到则返回True
print_(QPrinter:PySide6.QtGui.QPagedPaintDevice)None打印文本
setAcceptRichText(bool)None设置是否接受富文本
acceptRichText()bool获取是否接受富文本
setCursorWidth(int)None设置光标宽度(像素)
[slot]setAlignment(Qt.Alignment)None设置文字对齐方式
setTextCuror(QTextCursor)None设置文本光标
textCursorQTextCursor获取文本光标
setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy)None设置水平滚动条的策略
setDocument(QTextDocument)None设置文档
setDocumentTitle(str)None设置文档标题
[slot]setCurrentFont(QFont)None设置当前的字体
currentFont()OFont获取当前的文字字体
[slot]setFontFamily(str)None设置当前字体名称
fontFamily()str获取当前的字体名称
[slot]setFontItalic(bool)None设置当前为斜体
fontItalic()bool查询当前是否斜体
[slot]setFontPointSize(float)None设置当前字体大小
fontPointSize()float获取当前字体大小
[slot]setFontUnderline(bool)None设置当前为下划线
fontUnderline()bool查询当前是否为下划线
[slot]setFontWeight(int)None设置当前字体加粗,将文本格式的字体粗细设置为int
fontWeight()in获取当前字体粗细值
setOverwriteMode(bool)None设置替换模式
overwriteMode()bool查询是否是替换模式
setPlaceholderText(str)None设置占位文本
placeholderText()str获取占位文本
setReadOnly(bool)None设置是否只读
isReadOnly()bool获取是否只读
setTabStopDistance(float)None设置按Tab键时后退距离(像素)
tabStopDistance()float获取按Tab键时的后退距离
[slot]set TextBackgroundColor(QColor)None设置背景色
textBackgroundColor()QColor获取背景色
[slot]set TextColor(QColor)None设置文字颜色
textColor()QColor获取文字颜色
setUndoReloEnabled(bool)None设置是否可以撤销恢复
setWordWrapMode(WrapMode: PySide6.QtGui.QTextOption.WrapMode)None设置长单词换行到下一行模式
from PySide6.QtGui import QTextOption
WrapMode可选(前三个都是不换行,后两个会换行):
NoWrap
WordWrap
ManualWrap
WrapAnywhere
WrapAtWordBoundaryOrAnywhere
setVerticalScrollBarPolicy(Qt.ScrollBarPolicy)None设置竖直滚动条的策略
[slot]zoomIn(range: int=1)None放大文字
zoomlnF(range: float)None放大文字
[slot]zoomOut(range: int=1)None缩小文字
[slot]selectAll()None全选,选择所有文本
[slot]clear()None清空全部内容
[slot]copy()None复制旋转的内容
[slot]cut()None剪切选中的内容
canPaste()bool查询是否可以粘贴
[slot]paste()None粘贴
isUndoRedoEnabled()bool获取是否可以进行撤销、恢复
[slot]undo()None撤销上步操作
[slot]redo()None恢复撤销
moveCursor(operation[,mode=QTextCursor.MoveAnchor])通过执行给定的.操作来移动光标
如果是,则光标选择它移动的文本。这与用户按住Shift键并使用光标keys.modeKeepAnchor移动光标时获得的效果相同

多行文本控件QTextEdit的信号

多行文本控件QTextEdit的信号如表

信号描述
copyAvailable(bool)可以进行复制时发送信号
在文本编辑中选择或取消选择文本时,会发出此信号。
当选择文本时,此信号将以 “是” 设置为 “真” 时发出。如果未选择任何文本或取消选择所选文本,则发出此信号,“是” 设置为 “false”。
如果为 “是”,则可以使用copy() 将选择复制到剪贴板。如果yes为false,则copy() 不执行任何工作。
currentCharFormatChanged(QTextCharFormat)当前文字的格式发生变化时发送信号
如果当前字符格式已更改,例如由于光标位置的更改而导致,则会发出此信号。
新的格式是f。
cursorPositionChanged()每当光标的位置发生变化时,就会发出此信号。
redoAvailable(bool)可以恢复撤销时发送信号
每当重做操作变为可用 (可用为true) 或不可用 (可用为false) 时,就会发出此信号。
selectionChanged()选择的内容发生变化时发送信号
texiChanged()每当文档的内容发生变化时,都会发出此信号; 例如,当插入或删除文本时,或者当应用格式时。
属性markdown通知信号。
undoAvailable(bool)可以撤销操作时发送信号
每当撤消操作变为可用 (可用为true) 或不可用 (可用为false) 时,就会发出此信号。

文字格式QTextCharFormat

用QTextEdit的 setCurrentCharFormat(QTextCharFormat)方法可以设置文字的字体格式,QTextCharFormat类用于定义宇体的格式参数。文字格式QTextCharFormat的常用方法如表所示。

  • 用setFont(QFont,behavior=QTextCharFormat.FontProperticsAll)方法设置字体,其中参数 behavior 可以取:

    • QTextCharFormat.FontPropertiesSpccifiedOnly 在没有明确改变一个属性时不改变属性的值
    • QTextCharFormat.FontPropertiesAll,用默认的值覆盖现有的值
  • 用setUnderlineStyle(QTextCharFormat.UnderlineStyle)方法设置下划线的风格,其中枚举值 QTextCharFormat.UnderlineStyle 可以取以下值,对应值分别是0~7:

    PySide6.QtGui.QTextCharFormat.UnderlineStyle 此枚举描述了绘制带下划线文本的不同方式。

    下划线风格描述
    QTextCharFormat.NoUnderline绘制文本时没有任何下划线装饰。
    QTextCharFormat.SingleUnderline绘制一条线。
    QTextCharFormat.DashUnderline绘制短划线。
    QTextCharFormat.DotLine绘制点
    QTextCharFormat.DashDotLine绘制破折号和点
    QTextCharFormat.DashDotDotLine下划线使用DashDotDotLine绘制
    QTextCharFormat.WaveUnderline文本使用波浪形线加下划线。
    QTextCharFormat.SpellCheckUnderline下划线是根据 QPlatformTheme 的拼写检查下划线样式主题提示绘制的。默认情况下,它映射到WaveUnderline,在macOS上它映射到DotLine。
  • 用setVerticalAlignment(QTextCharFormat.VerticalAlignment)方法设置文字在竖直方向的对齐方式举值 QTextCharFormat.VerticalAlignment 可以取以下值,对应值分别是 0~6:

    PySide6.QtGui.QTextCharFormat.VerticalAlignment 此枚举描述了相邻字符可以垂直对齐的方式。

    QTextCharFormat.VerticalAlignment描述
    QTextCharFormat.AlignNormal相邻字符以标准方式定位,用于正在使用的书写系统中的文本。
    QTextCharFormat.AlignSuperScript字符放置在普通文本的基线行上方。
    QTextCharFormat.AlignSubScript字符放置在普通文本的基线下方。
    QTextCharFormat.AlignMiddle对象的中心与基线垂直对齐。目前,这仅适用于内联对象。
    QTextCharFormat.AlignBottom对象的下边缘与基线垂直对齐。
    QTextCharFormat.AlignTop对象的上边缘与基线垂直对齐。
    QTextCharFormat.AlignBaseline字符的基线对齐。
  • PySide6.QtGui.QFont.Capitalization枚举值

    ConstantDescription
    QFont.MixedCase这是不应用大小写更改的普通文本呈现选项。
    QFont.AllUppercase这将更改要以所有大写类型呈现的文本。
    QFont.AllSmallcase这将更改要以所有小写类型呈现的文本。
    QFont.SmallCaps这将更改要以小型大写字母类型呈现的文本。
    QFont.Capitalize这会更改要呈现的文本,每个单词的第一个字符作为大写字符。
    QTextCharFormat的方法及参数类型说明
    setFont(QFont:PySide6.QtGui.QFont,[behavior=QTextCharFormat.FontPropertiesInheritanceBehavior.FontPropertiesAll])设置字体
    FontPropertiesAll:此枚举指定 setFont()函数相对于未设置字体属性的行为方式。
    QTextCharFormat.FontPropertiesSpecifiedOnly:如果未显式设置属性,请不要更改文本格式的属性值。
    QTextCharFormat.FontPropertiesAll:如果未显式设置属性,请使用默认值覆盖文本格式的属性。
    setFontCapitalization(Capitalization:PySide6.QtGui.QFont.Capitalization)设置大小写,Capitalization枚举值见下表
    setFontFamilies(families: Sequence[str])设置字体名称
    setFontFamily(family: str)设置字体
    setFontFixedPitch(fixedPitch: bool)设置固定宽度
    setFontItalic(italic: bool)设置斜体
    setFontKerning(enable: bool)设置字距
    setFontLetterSpacing(float)设置字符间院
    setFontLetterSpacingType(QFont.SpacingType)设置字符间隙样式
    QFont.PercentageSpacing:值为 100 将保持间距不变;值 200 会将字符后面的间距放大字符本身的宽度。
    QFont.AbsoluteSpacing:正值将字母间距增加相应的像素;负值会减小间距。
    setFontOverline(overline: bool)设置上划线
    setFontPointSize(size: float)设置字体尺寸
    setFontStretch(factor: int)设置拉伸百分比
    setFontStrikeOut(strikeOut: bool)设置删除线
    setFontUnderline(underline: bool)设置下划线
    setFontWeight(weight: int)设置字体粗细程度
    setFont WordSpacing(spacing: float)设置字间距
    setSubScriptBaseline(baseline: float=16.67)设置下标位置(字体高度百分比值),默认值为 16.67%(高度的 1/6)
    setSuperScriptBaseline(baseline: float=50)设置上标位置(字体高度百分比值)默认值为 50%(高度的 1/2)
    setTextOutline(pen: Union[Qt.Pen,Style.OColorl])设置轮廓线的颜色
    setBaselineOffset(baseline: float)设置文字上下偏移的百分比,正值向上移动,负值向下移动
    setToolTip(tip: str)设置片段文字的提示信息
    setUnderlineColor(Union[QColor,Qt.GlobalColor])设置下划线的颜色
    setUnderlineStyle(QTextCharFormat.UnderlineStvle)设置下划线的风格,风格枚举值见上面介绍
    setVerticalAlignment(QTextCharFormat.VerticalAlianmet)设置文字竖直方向对齐样式,枚举值参见上面PySide6.QtGui.QTextCharFormat.VerticalAlignment
    setAnchor(anchor: bool)设置成锚点
    setAnchorHref(value: str)将给定文本设置成超链接
    setAnchorNames(names: Sequence[str])设置超链接名,目标公须用setAnchor()和 setAnchorHref()方法设置过

文本光标QTextCursor

QTextCursor 类是 QTextEdit 文档中的光标用于获光标在文档中的位置,选择文字,在光标位置处插人文本、图像文本块(段落)和表格等。

用QTextCursor 创建光标对象的方法如下所示,可以为一个文档创建多个 QTextCursor 光标。

from PySide6.QtGui import QTextCursor

QTextCursor(self)-> None
QTextCursor(block: PySide6.QtGui.QTextBlock)-> None
QTextCursor(cursor: PySide6.QtGui.QTextCursor)-> None
QTextCursor(document: PySide6.QtGui.QTextDocument)-> None
QTextCursor(frame: PySide6.QtGui.QTextFrame)-> None 

如果文档中有锚点 anchor(),则在锚点位置和光标位置 position()之间的文本会被选中。

  • 用setPosition(pos:int,mode=QTextCursorMoveAnchor)方法移动光标或点到指定位置,参数 mode可取:
    • QTextCursor。MoveAnchor
    • QTextCursor。KeepAnchor;
  • 用setCharFormat(QTextCharFormat)方法可以设置文本的格式;
  • 用insertText(str)或insertHtml(str)方法插人文本;
  • 用insertImage(QTextImageFormat)方法插入图像;
  • 用insertTable(rows;int;cols:int)方法插人表格
QTextCursor的方法及参数类型返回值的类型说 明
setCharFormat(QTextCharFormat)None设置文本的格式
setPosition(pos: int,mode=QTextCursor.MoveAnchor)None移动光标或锚点到指定位置
setBlockCharFormat(QTextCharFormat)None设置块内文本的格式
setBlockFormat(QTextBlockFormat)None设置块(段落)的格式
insertText(str)None插人文本
insertText(str,QTextCharFormat)None同上
insertBlock()None插人新文本块
insertBlock(QTextBlockFormat)None同上
insertFragment(fragment: QTextDocumentFragment)None插人文本片段
insertFrame(QTextFrameFormat)QTextFrame插人框架
insertHtml(str)None插人 html文本
insertImage(QTextImageFormat)None插入带格式的图像
insertImage(QImagename: str=")None插入图像
insertImage(name:str)None同上
insertList(QTextListFormat)QTextList插入列表标识
insertList(QTextListFormat.Style)QTextList同上
insertTable(rows: int,cols: int)QTextTable插入表格
insertTable(rows: int,cols: int,QTextTableFormat)QTextTable插入带格式的表格
atBlockStart()bool获取光标是否在块的起始位置
atEnd()b001获取光标是否在文档的末尾
atStart()bool获取光标是否在文档的起始 位置
block()QTextBlock获取光标所在的文本块(段落)
blockCharFormat()QTextCharFormat获取字符格式
blockFormat()QTextBlockFormat获取文本块的格式
charPormat()QTextCharFormat获取字符格式
clearSelection()None清除选择,将锚点移到光标 位置
deleteChar()None删除选中的或当前的文字
deletePreviousChar()None删除选中的或光标之前的文字
document()QTextDocument获取文档
position()int获取光标的绝对位置
positionInBlock()int获取光标在块中的位置
removeSelectedText()None删除选中的文字
selectedText()Str获取选中的文本

扩展:

对QTextEdit 中的文字进行更详细的排版格式化插人表格等操作,还需要其他一些类的支持,这些类包括:

  • QTextBlock
  • QTextBlockFormat
  • QTextBlockGroup
  • QTextBlockUserData
  • QTextDocument
  • QTextDocumentFragment
  • QlextDocumentWriter
  • QTextFragment
  • QTextFrame
  • QTextFrameFormat
  • QTextInlineObject
  • QTextltem
  • QTextLayout
  • QTextLength
  • QTextLineQTextList
  • QTextListFormat
  • QTextObject
  • QTextObjectInterface
  • QTextOption
  • QTextTabale
  • QTextTableCell
  • QTextTableCellFormat
  • QTextTableFormat

多行文本控件QTextEdit的应用实例

下面的程序建立一个简单的文字处理界面,如图所示,单击"打开文本文件"按钮可以从 txt文件中导人数据到 QTextEdit 中;

单击"插人文本"按钮,可以在光标处插人文本和超链接文本;

单击"插人图像文件"按钮,可以从硬盘上打开一个图形文件并插人到光标位置;

单击"作为系统输出"按钮,将把 help()print()函数的输出内容直接输出到QTextEdit中。

为了将窗口作为系统的标准输出这里使用了sysstdout=self和sysstderr=self语另外还必须为窗口编写write()函数读者还可以进一步编写设置字体名称、尺寸和颜色的代码,还可以增加复制粘贴剪切撤销、恢复撤销等的代码

image-20230221222458625

import sys
from PySide6.QtWidgets import(QApplication,QWidget,QPushButton,QHBoxLayout,QVBoxLayout,QTextEdit)
from PySide6.QtGui import QTextImageFormat
from PySide6.QtWidgets import QFileDialog


class MyWidget(QWidget):

    def __init__(self,parent=None):
        super().__init__(parent)
        self.setWindowTitle("文字处理")

        self.setupUi()
        self.btnOpen.clicked.connect(self.openText)# 信号与槽的连接
        self.btnInsert.clicked.connect(self.insertText)# 信号与槽的连接
        self.btnImage.clicked.connect(self.openImage)# 信号与槽的连接
        self.btnOutput.clicked.connect(self.sysOutput)# 信号与槽的连接

    def setupUi(self):  # 建立界面上的控件
        self.textEdit=QTextEdit(self)

        self.btnOpen=QPushButton(self)
        self.btnOpen.setText("打开文本文件")

        self.btnInsert=QPushButton(self)
        self.btnInsert.setText("插人文本")

        self.btnImage=QPushButton(self)
        self.btnImage.setText("插入图像文件")

        self.btnOutput=QPushButton(self)
        self.btnOutput.setText("作为系统输出")

        self.horizontalLayout=QHBoxLayout()# 水平排列
        self.horizontalLayout.addWidget(self.btnOpen)
        self.horizontalLayout.addWidget(self.btnInsert)
        self.horizontalLayout.addWidget(self.btnImage)
        self.horizontalLayout.addWidget(self.btnOutput)

        self.verticalLayout=QVBoxLayout(self)# 竖直排列
        self.verticalLayout.addWidget(self.textEdit)
        self.verticalLayout.addLayout(self.horizontalLayout)

    def openText(self):  # 按钮的槽函数
        name=""

        name,filter=QFileDialog.getOpenFileName(self,"选择文件",".","文本(*.txt)")

        print(name)

        if len(name)> 0:
            fp=open(name,'r')
            strings=fp.readlines()
            for i in strings:
                i=i.strip("\n")
                self.textEdit.append(i)
            fp.close()

    def insertText(self):  # 按钮的槽函数
        self.textEdit.setFontFamily('楷体')# 定义格式字体

        self.textEdit.setFontPointSize(20)# 定义格式字体大小

        self.textEdit.insertHtml("<a href='http://www.qq.com'>QQ</a>")# 插入html 文本

    def openImage(self):  # 按钮的槽函数
        self.textEdit.insertPlainText('Hello,Nice to meet you!')# 按格式插入字体

        name,filter=QFileDialog.getOpenFileName(self,"选择文件",".","图像(*.png *.jpg)")

        textCursor=self.textEdit.textCursor()

        pic=QTextImageFormat()

        pic.setName(name)# 图片路径
        pic.setHeight(100)# 图片高度
        pic.setWidth(100)# 图片宽度

        textCursor.insertImage(pic)# 插入图片

    def sysOutput(self):  # 按钮的槽函数
        sys.stdout=self  # 修改系统的标准输出
        sys.stderr=self  # 修改系统的异常信息输出
        print("我是chuiniubi公司,很高兴认识你!")

    def write(self,info):  # 将系统标准输出改成窗口,需要定义一个write()函数
        info=info.strip("\r\n")

        self.textEdit.insertPlainText(info)


if __name__=='__main__':
    app=QApplication(sys.argv)
    win=MyWidget()

    win.show()
    sys.exit(app.exec())

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值