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

qt QTextEdit详解

QTextEdit是Qt框架中的一个文本编辑控件类,它提供了丰富的功能用于编辑和显示纯文本以及富文本。

重要方法

  • setPlainText(const QString &text):设置纯文本内容。
  • toPlainText():获取纯文本内容。
  • setHtml(const QString &text):设置HTML格式的文本内容。
  • toHtml():获取HTML格式的文本内容。
  • setMarkdown(const QString &markdown):设置Markdown格式的文本内容。
  • toMarkdown():获取Markdown格式的文本内容。
  • setReadOnly(bool b):设置QTextEdit是否为只读模式。在只读模式下,用户无法编辑文本内容。
  • setTextInteractionFlags(Qt::TextInteractionFlags flags):设置QTextEdit控件如何与用户输入交互。例如,是否允许通过鼠标或键盘选择文本、是否允许访问链接等。
  • setAutoFormatting(QTextEdit::AutoFormatting features):设置QTextEdit的自动格式化功能。例如,自动格式化项目符号列表、自动格式化所有内容等。
  • setTabChangesFocus(bool b):设置是否按下Tab键切换文本框焦点。
  • setTabStopDistance(qreal distance):设置按下Tab键时插入制表符的间隔距离。
  • setLineWrapColumnOrWidth(int w):设置文本自动换行的列数或宽度。
  • setLineWrapMode(QTextOption::WrapMode mode):设置QTextEdit编辑器中的换行模式。
  • setUndoRedoEnabled(bool b):启用或禁用撤销和重做功能。
  • setPlaceholderText(const QString &placeholderText):设置占位符文本。
  • append(const QString &text):在当前文本末尾添加文本。
  • clear():清除编辑器内容。
  • undo()、redo():撤销和重做操作。
  • cut()、copy()、paste():剪切、复制和粘贴操作。

重要信号

  • textChanged():当文本内容发生变化时发出。
  • selectionChanged():当选中的文本发生变化时发出。
  • cursorPositionChanged():当光标位置发生变化时发出。
  • undoAvailable(bool):当是否可撤销的状态发生改变时发出。
  • redoAvailable(bool):当是否可反撤销的状态发生改变时发出。
  • copyAvailable(bool):当是否有文本可复制的状态发生改变时发出。
#include <QApplication>  
#include <QWidget>  
#include <QTextEdit>  
#include <QVBoxLayout>  
#include <QDebug>  
  
class MyWidget : public QWidget {  
    Q_OBJECT  
  
public:  
    MyWidget(QWidget *parent = nullptr) : QWidget(parent) {  
        QVBoxLayout *layout = new QVBoxLayout(this);  
  
        QTextEdit *textEdit = new QTextEdit(this);  
        textEdit->setPlainText("Hello, QTextEdit!");  
        textEdit->setReadOnly(false);  
  
        // 连接信号和槽  
        connect(textEdit, &QTextEdit::textChanged, this, &MyWidget::onTextChanged);  
        connect(textEdit, &QTextEdit::cursorPositionChanged, this, &MyWidget::onCursorPositionChanged);  
  
        layout->addWidget(textEdit);  
    }  
  
private slots:  
    void onTextChanged() {  
        QTextEdit *textEdit = qobject_cast<QTextEdit *>(sender());  
        qDebug() << "Text changed:" << textEdit->toPlainText();  
    }  
  
    void onCursorPositionChanged() {  
        QTextEdit *textEdit = qobject_cast<QTextEdit *>(sender());  
        QTextCursor cursor = textEdit->textCursor();  
        qDebug() << "Cursor position changed to:" << cursor.position();  
    }  
};  
  
int main(int argc, char *argv[]) {  
    QApplication app(argc, argv);  
  
    MyWidget widget;  
    widget.show();  
  
    return app.exec();  
}  
  
#include "main.moc"

觉得有帮助的话,打赏一下呗。。

           


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

相关文章:

  • 优选算法精品——双指针
  • 非线性数据结构之图
  • net core Autofac 替换默认的服务容器 DI,微软自动的容器 不支持命名选项的
  • C++面向对象设计模式——单例模式
  • 【MIT-OS6.S081笔记1】xv6环境搭建
  • 第02章 MySQL环境搭建
  • 005-Kotlin界面开发之程序猿初试Composable
  • LongVU :Meta AI 的解锁长视频理解模型,利用自适应时空压缩技术彻底改变视频理解方式
  • vrrp和mstp,vrrp和byd
  • 无人机避障——使用三维PCD点云生成的2D栅格地图PGM做路径规划
  • LlamaIndex框架学习-提示词的几种使用模式
  • JVM1.8内存模型
  • 力扣每日一题 3165. 不包含相邻元素的子序列的最大和
  • MySQL存储引擎——针对实习面试
  • 海康视频不能在浏览器解析播放,需要转码
  • 链表详解(三)
  • mmpretrainmmdetection环境配置
  • 高并发场景下的性能测试方法!
  • ethers.js 创建钱包,导入助记词,导入私钥)
  • 浅析Android Handler机制实现原理
  • ssm037物流管理系统设计与实现+jsp(论文+源码)_kaic
  • 克服奖励欺骗:Meta发布全新后训练方式CGPO,编程水平直升5%,打破RLHF瓶颈
  • [linux驱动开发--零碎知识]基于linux内核6.11.0
  • C++笔试题之实现一个定时器
  • [JAVAEE] 面试题(三) - Callable接口, ReentrantLock类, Semaphore信号量, CountDownLatch类
  • 在线教育辅助:SpringBoot试题库系统精讲