目录
代码示例: 获取多行输入框的内容
代码示例:验证输入框的各种信号
QTextEdit 表示多行输入框也是一个富文本 & markdown 编辑器
并且能在内容超出编辑框范围时自动提供滚动条
QTextEdit不仅能表示纯文本,还可以表示html和markdown
QPlainTextEdit只能表示纯文本(Plain Text)
核心属性
属性 | 说明 |
---|---|
markdown | 输入框内持有的内容,支持markdown格式。能够自动的对markdown文本进行渲染成html |
html | 输入框内持有的内容,可以支持大部分html标签,包括img和table等。 |
placeHolderText | 输入框为空时提示的内容。 |
readOnly | 是否是只读的 |
undoRedoEnable | 是否开启undo/redo功能。 • 按下ctrl + z触发undo • 按下ctrl + y触发redo |
autoFormating | 开启自动格式化。 |
tabstopWidth | 按下缩进占多少空间 |
overwriteMode | 是否开启覆盖写模式 |
acceptRichText | 是否接收富文本内容 |
verticalScrollBarPolicy | 垂直方向滚动条的出现策略 • Qt::ScrollBarAlwaysOn : 总是显示滚动条。 |
horizontalScrollBarPolicy | 水平方向滚动条的出现策略 • Qt::ScrollBarAsNeeded:根据内容自动决定是否需要滚动条。这是默认值。 • Qt::ScrollBarAlwaysOff:总是关闭滚动条。 • Qt::ScrollBarAlwaysOn:总是显示滚动条。 |
overwriteMode:是否开启覆盖写模式
键盘上有一个 insert
(当然这个insert的覆盖写模式,在有的软件上不生效)
核心信号
信号 | 说明 |
---|---|
textChanged() | 文本内容改变时触发 |
selectionChanged() | 选中范围改变时触发 |
cursorPositionChanged() | 光标移动时触发 |
undoAvailable(bool) | 可以进行 undo 操作时触发 |
redoAvailable(bool) | 可以进行 redo 操作时触发 |
copyAvailable(bool) | 文本被选中/取消选中时触发 |
代码示例: 获取多行输入框的内容
1)创建一个多行输入框和一个label
2) 给多行输入框添加 slot 函数.处理textChanged信号.
·通过toPlainText方法获取到内部的文本
·类似的,QTextEdit还提供了toMarkdown和toHtml.根据需要我们调整不同的获取方式.
toPlainText()
toHtmI()
toMarkdown()

这种情况下,输入的aaa不是敲到输入框里面,而是输入到“输入法给你提供的窗口中”
当你按下空格/回车的时候,输入法的内容才会进入输入框,
所谓的输入法,其实是单独的一个窗口
代码示例:验证输入框的各种信号
1)创建多行输入框

QTextEdit中包含了一个QTextCursor对象,通过这个对象可以获取到当前光标位置和选中
的内容,
copyAvailable(bool):只有鼠标选中文本,可复制才为true
cursorPositionChanged():光标位置改变
selectionChanged():鼠标选择文本改变
textChanged():编辑框内容改变
undoAvailable(bool):撤销使能,eg当你新增内容1234,撤销使能,相当于你按下Ctrl+Z撤销操作,使编辑框回到之前没有内容的状态redoAvailable(bool):接上面操作,撤销之后,编辑框回到了空状态,重做使能,相当于你可以通过Ctrl+Y,重做回到内容为1234的状态

可以看到:
1. 编写内容时,textChanged和cursorPositionChanged和undoAvailable会触发



