首页 > 其他分享 >【Qt】QTextEdit

【Qt】QTextEdit

时间:2024-08-01 19:54:18浏览次数:9  
标签:触发 markdown Qt QTextEdit 滚动条 html 文本

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;
}


标签:触发,markdown,Qt,QTextEdit,滚动条,html,文本
From: https://blog.csdn.net/m0_72563041/article/details/140802053

相关文章

  • MQTT协议与中间件
    发布订阅模式:消费者(客户端)订阅服务器(作为代理Broker)上的主题,当有生产者(客户端)在主题中发布消息时,消费者可以收到。MQTT:基于发布订阅模式的轻量级通讯协议,可以以极少的代码和有限带宽,为连接远程设备提供实时可靠的消息服务。广泛应用于物联网,小型设备。MQTT传输的消息分为两......
  • Qt QTtoolButton 鼠标移动到按钮上时,弹出菜单后,按钮的hover状态无法恢复的问题
    需求:QTtoolButton 鼠标移到按钮上时,弹窗菜单,并且点击菜单或者其他地方,菜单关闭后,按钮的hover状态需要恢复原状。1.创建按钮和菜单,并安装事件过滤器m_Menu=newQMenu();m_Menu->addAction(ui->action22);m_Menu->installEventFilter(this);m_ToolButton=newQToolButto......
  • QT之ui控件随窗口布局的大小而自适应大小
    QT之ui窗口自适应布局新建个工程说明,注意此处勾上Generateform根据开发电脑的系统选择套件点开widget.ui,如图鼠标随意托几个常用控件展示,如图三个控件,如图,水平布局sizePolicy策略:图中,控件的sizePolicy策略将决定上面这三个控件组在自适应成的控件组的分配策略。Fi......
  • 在 pyqt6 QTextEdit 中显示数据库查询
    我想实现以下非常小的项目,即用户应该输入产品名称,Python应该在数据库中搜索并在pyqt6桌面应用程序中显示查询结果,为此我已经实现了以下基本GUI形式:这里用户输入产品,然后单击按钮,结果将显示在空白处,即:QTextEdit(),最有趣的部分是这个功能:defreturn_product_......
  • qtui更改后报错:-1: error: [Makefile.Debug:7745: ui_widget.h] Error 1,如何解决?
    qtui更改后报错:-1:error:[Makefile.Debug:7745:ui_widget.h]Error1,如何解决?在使用Qt开发时,遇到-1:error:[Makefile.Debug:7745:ui_widget.h]Error1这样的错误通常是因为ui_widget.h文件未能正确生成。这个文件是由Qt的uic(用户界面编译器)工具生成的......
  • QT开发积累——qt中的double和float精度问题
    目录引出qt中的double和float精度问题qt中的三元表达式char和qchar的区别总结日积月累,开发集锦方法参数加const和不加const的区别方法加static和不加static的区别Qt遍历list提高效率显示函数的调用使用`&`与不使用`&`qt方法的参数中使用`&`与不使用`&`除法的一个坑......
  • Qt程序中的日志记录Log4Qt
    一.为啥使用log4Qt?    1.与log4cpp的用法相似,支持配置文件。    2.可以输出qDebug(),qInfo()等等Qt自带的打印信息。二.工程地址MEONMedical/Log4Qt:Log4Qt-LoggingfortheQtcross-platformapplicationframework(github.com)        编译......
  • MQTT原理及案例
    MQTT协议是当今世界上最受欢迎的物联网协议,没有之一。MQTT协议为设备提供了稳定、可靠、简单易用的通信基础,截至目前通过MQTT协议连接的设备已经过亿,广泛应用于IoT、M2M等领域。本篇将从最基础的知识开始,向您讲解MQTT协议的原理与应用。目前MQTT主流版本有MQTT3.1.1......
  • 如何在 Pyqt5 Python 中实现 QTableWidget 列过滤器中的搜索栏?
    我使用pyqt5创建了一个QTableWidget,并成功地在表格小部件的每一列中添加了过滤选项,并使用堆栈溢出上可用的答案之一。过滤器按预期工作,但我想在顶部的过滤器中添加搜索栏来搜索值。在我的python脚本中,过滤器中可能有大约50多个唯一值。因此,如果有一种方法可以在过滤器......
  • 具有 Python lambda 函数的 QTimer 使用先前的数据运行
    我有一个GUI项目,它使用PySide2和Python3.8,它在QThread中执行一些后台任务。在该QThread中,我有QTimer成员对象,该对象必须定期运行一个函数,每次向其传递不同的数据。我没有使用QTimer.singleShot静态函数,因为如果需要某些特定场景,我需要......