【Qt】QTextEdit

发布于:2024-07-31 ⋅ 阅读:(139) ⋅ 点赞:(0)

QTextEdit是Qt中用于编辑和显示文本内容的类。其提供了丰富的用户界面控件,可以用于创建和包含格式化文本、图片和链接的文本编辑器

常用属性 

属性 说明
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::ScrollBarAsNeeded:根据内容自动决定是否需要滚动条。默认为该模式
  • Qt::ScrollBarAlwaysOff:总是关闭滚动条
  • Qt::ScrollBarAlwaysOn:总是显示滚动条
horizontalScrollBarPolicy

水平方向滚动条的出现策略

  • Qt::ScrollBarAsNeeded:根据内容自动决定是否需要滚动条。默认为该模式
  • Qt::ScrollBarAlwaysOff:总是关闭滚动条
  • Qt::ScrollBarAlwaysOn:总是显示滚动条

核心信号

信号 说明
textChanged() 文本内容改变时触发
selectionChanged() 选中范围改变时触发
cursorPositionChanged() 输入光标位置改变时触发
undoAvailable(bool) 可以进行undo操作时触发
redoAvailable(bool)

可以进行redo操作时触发

copyAvailable(bool)

文本被选中/取消选中时触发,是否可复制。

有选中的文本时,触发此信号,参数为true

取消选中文本时,触发此信号,参数为false

目录

属性

文本内容

信号

undoAvailable&redoAvailable

copyAvailable


属性

文本内容

QTextEdit有四种设置文本内容的方法。这些方法,后使用的会覆盖之前设置的文本

setText(const QString &text)//自动解释文本内容,支持html和markdown

setPlainText(const QString &text)//纯文本
setHtml(const QString &text)//html标签
setMarkDown(const QString &markdown)//markdown文本

获取文本内容的方法有三个

QSrting toPlainText()//将文本中的纯文本提取出来,省去html的标签和markdown
QString toMarkdown()//将文本按markdwon格式提取,html文本也可以转换成markdown
QString toHtml()//将文本按html标签提取,markdown也可以转换成html

信号

undoAvailable&redoAvailable

当是否可撤销的状态发生改变时才触发undoAvailable

当反撤销的状态发生改变时才出发redoAvailable

示例:定义这两个信号的槽函数,输入/撤销文本,观察信号的发出及参数

//是否可ctrl + z撤回的状态发生改变时发出该信号
void Widget::on_textEdit_undoAvailable(bool b)
{
    qDebug() << "undoAvailable" << b;
}
//是否可ctrl + y撤回ctrl + z的撤回
void Widget::on_textEdit_redoAvailable(bool b)
{
    qDebug() << "redoAvailable" << b;
}




copyAvailable

 当是否有文本可复制的状态发生改变时才会触发copyAvailable

 示例:定义这该信号的槽函数,选中/取消选择文本,观察信号的发出及参数

//有无选中文本,的状态改变时发出该信号,参数是是否有内容可以复制
void Widget::on_textEdit_copyAvailable(bool b)
{
    qDebug() << "copyAvailable" << b;
}



网站公告

今日签到

点亮在社区的每一天
去签到