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

ops/2025/2/27 10:55:51/

多行输入框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.ppmy.cn/ops/161657.html

相关文章

openlayers结合turf geojson面获取面积和中心点

在 OpenLayers 中绘制 GeoJSON 面要素并计算面积和中心点&#xff0c;可以结合 OpenLayers 的 ol/format/GeoJSON 模块将 GeoJSON 数据转换为 OpenLayers 的 Feature&#xff0c;然后使用 Turf.js 进行计算。示例代码如下 import Map from ol/Map; import View from ol/View; …

冒泡排序(Bubble Sort)详细教程:Java实现与优化

一、什么是冒泡排序&#xff1f; 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它的基本思想是通过两两比较相邻元素&#xff0c;将较大的元素“冒泡”到数列的末尾。每一轮遍历会将一个较大的元素放到正确的位置&#xff0c;直到整个数组有序…

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 &#xff08;1&#xff09;提取较亮区域 - pass1 &#xff08;2&#xff09;高斯模糊 - pass2&3 &#xff08;3&#xff…

【综合项目】api系统——基于Node.js、express、mysql等技术

目录 0 前言 1 初始化 2 注册登录 2.1 注册 2.1.1 功能&#xff1a;密码加密&#xff08;2.3.3&#xff09; 2.1.1.1 操作 2.1.1.2 bcryptjs详解 2.1.2 优化&#xff1a;表单数据验证&#xff08;2.5&#xff09; 2.1.2.1 过时代码修正 2.1.2.2 关键操作 0 前言 …

MATLAB基础应用精讲-【数模应用】牛顿迭代法(附MATLAB、C++、R语言和python代码实现)

目录 前言 算法原理 什么是牛顿迭代法? 牛顿迭代如何迭代? 啥时候停止迭代呢? 特点 牛顿迭代法的扩展 迭代过程 数学模型 电力系统中牛顿拉夫逊法(N-R)潮流计算的直角坐标形式详细推导 潮流计算的牛顿-拉夫逊方法 牛顿-拉夫逊法的原理 牛顿-拉夫逊法的意义和…

Qt Creator + CMake 构建教程

此教程基于: Qt 6.7.4Qt Creator 15.0.1CMake 3.26.4 Qt 6 以下的版本使用 CMake 构建可能会存在一些问题. 目录 新建窗体工程更新翻译添加资源软件部署(Deploy) 此教程描述了如何一步步在 Qt Creator 中使用 CMake 构建应用程序工程. 涉及 新建窗体工程, 更新翻译, 添加资源, …

音频模拟信号转数字信号的原理

音频模拟信号转数字信号的原理 音频信号是自然界中常见的模拟信号(Analog Signal),它是连续的、随时间变化的波形。为了在计算机或数字设备中处理和存储音频信号,需要将模拟信号转换为数字信号(Digital Signal)。这个过程称为 模数转换(Analog-to-Digital Conversion, …

从Excel到Hadoop:数据规模的进化之路

从Excel到Hadoop&#xff1a;数据规模的进化之路 在数字时代&#xff0c;数据就像空气&#xff0c;充斥在我们生活的每个角落。今天我们谈"大数据"&#xff0c;但回头看看&#xff0c;数据的演变经历了从"小数据"到"大数据"的量变到质变的过程。…