Qt常用控件——QTextEdit

news2024/11/19 11:19:01

文章目录

    • QTextEdit核心属性和信号
    • 同步显示示例
    • 信号示例

QTextEdit核心属性和信号

QTextEdit表示多行输入框,是一个富文本和markdown编辑器,并且能在内存超出编辑框范围时自动提供滚动条。

QPlainTexEdit是纯文本,QTextEdit不仅表示纯文本,还支持html和markdown。

它们的功能差不多,本篇就以QTextEdit为示例

核心属性:

属性说明
markdown支持markdown格式
html支持html
placeHolderText输入框为空时有提示内容
readOnly是否只读
undoRedoEnable是否开启undo/redo功能
按下ctrl + z 触发undo(撤销)
按下ctrl + y 触发redo(取消撤销)
autoFormating开启自动格式化
tabstopWidth按下缩进多少空间
overwriteMode是否开启写覆盖
acceptRichText是否接受富文本
verticalScrollBarPolicy垂直方向出现滚动条策略:
Qt::ScrollBarAsNeeded:根据内容自动决定是否需要滚动条(默认)
Qt::ScrollBarAlwaysOff:总是关闭滚动条
Qt::ScrollBarAlwaysOn:总是出现滚动条
horizontalScrollBarPolicy水平方向出现滚动条策略:
同上

核心信号:

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

同步显示示例

创建一个界面,里面包含多行输入框,获取里面的内容,同步显示到label当中

image-20240913215200438

#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& text = ui->textEdit->toPlainText();
    ui->label->setText(text);
}

GIF 2024-9-13 21-55-21

信号示例

#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_textChanged()
{
    qDebug() << "textChanged: " << ui->textEdit->toPlainText();
}

void Widget::on_textEdit_selectionChanged()
{
    //描述当前光标情况
    QTextCursor cursor = ui->textEdit->textCursor();

    qDebug() << "selectionChanged: " << cursor.selectedText();
}

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

void Widget::on_textEdit_undoAvailable(bool b)
{
    qDebug() << "undoAvailable: " << b;
}

void Widget::on_textEdit_redoAvailable(bool b)
{
    qDebug() << "redoAvailable: " << b;
}

void Widget::on_textEdit_copyAvailable(bool b)
{
    qDebug() << "copyAvailable" << b;
}

GIF 2024-9-13 22-07-27

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2132679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI界的新宠儿:L20显卡凭什么让云服务商趋之若鹜?

NVIDIA L20 GPU 随着 AI 模型的规模和复杂度不断攀升&#xff0c;对计算能力的渴求也与日俱增。对于 C 端用户的朋友们而言&#xff0c;A 系列和 H 系列的价格过于昂贵&#xff0c;而 RTX 4090 在更高的现存需求面前也无能为力。 在这个背景下&#xff0c;一款新的 GPU 悄然崛起…

SQL入门题

作者SQL入门小白&#xff0c;此栏仅是记录一些解题过程 1、题目 用户访问表users&#xff0c;记录了用户id&#xff08;usr_id&#xff09;和访问日期&#xff08;log_date&#xff09;,求出连续3天以上访问的用户id。 2、解答过程 2.1数据准备 通过navicat创建数据&#xf…

如何将一个软件添加到开始菜单以快速打开?

以QQ音乐为例&#xff1a; 1.先找到QQMusic.exe 2.右键创建快捷方式到桌面 3.经过第二步&#xff0c;桌面上就有了QQMusic的快捷打开方式&#xff0c;以后就可以通过双击这个快捷方式打开QQMusic&#xff0c;如果想从开始菜单打开&#xff0c;还需要一些工作&#xff1a;请你…

数据结构-线性表顺序单项链表双向链表循环链表

1数据结构概述 数据结构是计算机组织、存储数据的方式。是思想层面的东西&#xff0c;和具体的计算机编程语言没有关系。可以用任何计算机编程语言去实现这些思想。 1.1 数据逻辑结构 反映数据逻辑之间的逻辑关系&#xff0c;这些逻辑关系和他们咱在计算机中的存储位置无关。…

专题三_二分查找算法_算法详细总结

目录 二分查找 1.⼆分查找&#xff08;easy&#xff09; 1&#xff09;朴素二分查找&#xff0c;就是设mid(leftright)/2,xnums[mid],t就是我们要找的值 2&#xff09;二分查找就是要求保证数组有序的前提下才能进行。 3&#xff09;细节问题&#xff1a; 总结&#xff1a…

P3565 [POI2014] HOT-Hotels

~~~~~ P3565 [POI2014] HOT-Hotels ~~~~~ 总题单链接 ~~~~~ 2024.9.10&#xff1a;DP方程有问题&#xff0c;已修改&#xff0c;同时更新了长链剖分优化版本。 思路 ~~~~~ 设 g [ u ] [ i ] g[u][i] g[u][i] 表示在 u u u 的子树内&#xff0c;距离 u u u 为 i i i 的点的…

了解国产光耦合器的核心功能和应用

光耦合器或光隔离器是现代电子产品中的关键组件&#xff0c;它能够在没有电接触的情况下在系统的不同部分之间安全地传输信号。这是通过基于光的信号传输来实现的&#xff0c;它可以隔离电路&#xff0c;防止高压损坏敏感元件。近年来&#xff0c;国产光耦合器取得了重大进展&a…

孙怡带你深度学习(1)--神经网络

文章目录 深度学习神经网络1. 感知器2. 多层感知器偏置 3. 神经网络的构造4. 模型训练损失函数 总结 深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。 从上方的内容包含结果&#xff0c;我们可以知道&#xff0c;在学习深度学…

OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践

样例简介 本Demo是基于Hi3516开发板&#xff0c;使用开源OpenHarmony开发的应用。本应用主要功能有&#xff1a; 可以搜索本地指定目录的图片和视频文件&#xff0c;并可进行点击播放。 可以通过wifi接收来自手机的美食图片以及菜谱视频&#xff0c;让我们对美食可以边学边做…

昨晚,OpenAI震撼发布o1大模型!我们正式迈入了下一个时代。

大半夜的&#xff0c;OpenAI抽象了整整快半年的新模型。 在没有任何预告下&#xff0c;正式登场。 正式版名称不叫草莓&#xff0c;草莓只是内部的一个代号。他们的正式名字&#xff0c;叫&#xff1a; 为什么取名叫o1&#xff0c;OpenAI是这么说的&#xff1a; For complex …

TCP核心机制

TCP基本特点&#xff1a;有连接&#xff0c;面向字节流&#xff0c;全双工&#xff0c;可靠传输(TCP最核心的机制) 核心机制一(确认应答): 在网络中&#xff0c;可能我们传输的消息会因为诸多原因导致发送到对方手中的顺序不一样&#xff0c;举个例子&#xff1a; 在这张图中…

【鸿蒙开发从0到1 支付宝界面布局实现day11】

鸿蒙开发案例-支付宝界面 一.布局思路二.页面搭建1.整体stack布局底部的tab2.主体区域的架子:头部主体界面(层叠关系,主题页面可以滚动)3.给主体内容填内容(1).完成快捷导航(2)服务导航 4.装饰图片 三.整体效果展示1.效果展示2.完整代码演示 四.总结 一.布局思路 整体stack布局…

成型的程序

加一个提示信息 加上python 常用的包 整个程序打包完 250M 安装 960MB matplot numpy pandas scapy pysearial 常用的包 (pyvisa)… … 啥都有 Python 解释器组件构建 要比 lua 容易的多 &#xff08;C/Rust 的组件库)

Vue3 父组件向子组件传值:异步数据处理的显示问题

一、问题场景 假设我们有一个父组件和一个子组件&#xff0c;父组件需要经过一些复杂的计算或者异步操作才能得到要传递给子组件的值。在数据还没有准备好的时候&#xff0c;子组件尝试获取并显示这个值&#xff0c;这就可能导致子组件没有数据可显示或者显示了一个不正确的初…

简单有趣的python小程序(涵源代码)

目录 tkinter 计算器 2.计算题练习 猜数字 烦人的程序 无法拒绝的请假条。。。 爬虫 你想看豆瓣评分前十的电影? WXpython 记事本&#xff08;可保存&#xff09;​编辑 数字逻辑 解方程 tkinter 计算器 import tkinter as tk import tkinter.messagebox as mroot…

使用ChatGPT撰写论文,一定要掌握加强理论深度的八个策略!

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 在学术论文的写作中,加强论文的理论深度是非常重要的一个…

nacos明明配置了远程连接地址却一直连接本地的详细配置解释

大家时间都很珍贵&#xff0c;我直接把方法放这 这个是yml文件&#xff0c;我们配置yml文件的时候&#xff0c;一定要把他的服务发现地址写了 这里是针对bootstrap做出的文件&#xff0c;注意名字&#xff0c;要和我们在yml文件里面的spring名字一样 yml discovery:是发现的意…

C到C++入门基础知识

一&#xff1a;命名空间&#xff1a;namespace &#xff08;一&#xff09;&#xff1a;命名空间的定义 注&#xff1a;命名空间只能定义在全局&#xff0c;不能定义在函数内部。 &#xff08;1&#xff09;类似于C语言的结构体&#xff0c;C语言的命名空间定义为&#xff1…

Java Enterprise System 体系结构

本章概述了 Java Enterprise System 部署所基于的体系结构概念。 章中描述了一个框架,在此框架内从三维角度对 Java Enterprise System部署体系结构进行了分析,它们分别是:逻辑层、基础结构服务级别和服务质量。这三维在下图中以图解形式显示为正交坐标轴,它们有助于在体系…

Word使用手册

修改样式 编辑word文档时&#xff0c;标题和正文文本通常有不同的格式&#xff0c;如果能将这些格式保存为样式&#xff0c;下一次就能直接调用样式&#xff0c;而不需要重复手动设置格式。 可以将样式通常保存为不同的 样式模板.docx&#xff0c;要调用不同样式集&#xff0…