当前位置: 首页 > article >正文

Qt常用控件之多行输入框QTextEdit

多行输入框QTextEdit

QTextEdit 是一个多行输入框控件,支持富文本和 markdown 格式,当文本内容超出编辑框的范围时能自动提供滚动条。

QPlainTextEdit 是只支持富文本格式的多行输入框,属性和使用上与 QTextEdit 几乎没有区别。

QTextEdit属性

属性说明
markdown输入框内容,支持 markdown 格式,将 markdown 文本转化成 html 。
html输入框内容,支持大部分 html 标签,包括 img 和 table 等。
placeHolderText输入框为空时显示的内容。
readOnly是否是只读的。
undoRedoEnable是否开启撤回和反撤回功能(即 Ctrl + z 和 Ctrl + y)。
autoFormating开启自动格式化。
tabstopWidth按下 tab 缩进多少空间。
overwriteMode是否开启覆写模式(即光标在文本中间时,输入的内容会覆盖光标后面的内容)。
acceptRichText是否接收富文本内容。
verticalScrollBarPolicy垂直方向滚动条的出现策略。 Qt::ScrollBarAsNeeded 为根据内容自动决定是否需要滚动条(默认值);Qt::ScrollBarAlawysOff 总是关闭滚动条;Qt::ScrollBarAlawysOn 总是显示滚动条。
horizontalScrollBarPolicy水平方向滚动条的出现策略。 Qt::ScrollBarAsNeeded 为根据内容自动决定是否需要滚动条(默认值);Qt::ScrollBarAlawysOff 总是关闭滚动条;Qt::ScrollBarAlawysOn 总是显示滚动条。

注意,将 QTextEdit 的内容获取为 html 格式的接口是 toPlainText()

QTextEdit信号

信号说明
textChanged()文本内容改变时触发。
selectionChanged()选中范围改变时触发。
cursorPositionChanged()光标移动时触发。
undoAvailable(bool)可以进行 undo 操作时触发。(很少使用)
redoAvailable(bool)可以进行 redo 操作时触发。(很少使用)
copyAvaiable(bool)文本被选中/取消选中时触发。

代码获取QTextEdit输入框的内容

通过 toPlainTextEdit() 接口获取输入框的内容,注意返回值是 const QString 类型:

//widget.cpp
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_textEdit_textChanged()
{
    const QString& content=ui->textEdit->toPlainText();

    ui->lineEdit->setText(content);
}

QTextEdit1

代码获取QTextEdit的光标位置和选中内容

QTextEdit 中包含了⼀个 QTextCursor 对象,通过这个对象可以获取到当前光标位置和选中的内容。

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_textEdit_cursorPositionChanged()
{
    const QTextCursor& cursor=ui->textEdit->textCursor();
    qDebug()<<"PositionChangedTo:"<<cursor.position();
}

void Widget::on_textEdit_selectionChanged()
{
    const QTextCursor& cursor=ui->textEdit->textCursor();
    qDebug()<<"selectChangedTo:"<<cursor.selectedText();
}

QTextEdit2

当光标处于不同的位置时, cursor.position() 获取当前光标的位置。

QTextEdit3

当光标选中不同的子串时,cursor.selectedText() 可以获取选中的内容。


http://www.kler.cn/a/565532.html

相关文章:

  • RabbitMQ系列(四)基本概念之Exchange
  • 行为型模式 - 职责链模式 (Chain of Responsibility Pattern)
  • 我与Swagger-UI的量子纠缠:SpringBoot3.x中的薛定谔404事件——解决`springdoc-openapi:2.8.5`UI界面显示问题
  • 【Python pro】函数
  • redis密码设置
  • 如何实现某短视频平台批量作品ID的作品详情采集
  • PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
  • 销售易NeoCRM与八骏科技CRM:全方位深度对比
  • 浅聊RocketMQ 分布式事务解决方案原理
  • Spock框架:让单元测试更优雅的高效武器
  • QT 读取sqlite3数据库中文乱码
  • 字段对比清洗
  • [MRCTF2020]Ezpop
  • 搜索赋能:大型语言模型的知识增强与智能提升
  • Deepseek开源周第一天:FlashMLA来袭
  • 自定义注解 + AOP + Redisson:优雅实现分布式锁(增强版)
  • Go 语言内存池 (`sync.Pool`) 深度解析
  • 腿足机器人之十三-强化学习PPO算法
  • AI+游戏,正在进行时!
  • svn忽略文件