【Qt学习】QTextEdit 与 QComboBox 的 属性与实例(槽函数的使用、读取本机内容到控件)

文章目录

  • 1. QTextEdit
    • 2.1 介绍
    • 2.2 实例使用 - 槽函数的使用
  • 2. QComboBox
    • 2.1 介绍
    • 2.2 实例使用
      • 案例1:设置下拉框项目组件的方式
      • 案例2:读取本机文件内容 到QComboBox

1. QTextEdit

2.1 介绍

在这里插入图片描述

我们可以查阅官方文档,对QTextEdit 有更深的了解,这里直接进行总结:

QTextEdit 是 Qt 框架中用于显示和编辑富文本内容的组件。

QTextEdit有以下核心属性:

属性描述
documentQTextEdit 中的文本内容存储在一个 QTextDocument 对象中。
plainText获取或设置 QTextEdit 中的纯文本内容。
textCursor返回当前 QTextEdit 中的光标位置。
acceptRichText设置 QTextEdit 是否接受富文本格式的输入。
readOnly设置 QTextEdit 是否为只读状态。
lineWrapMode设置 QTextEdit 的文本换行模式。
alignment设置 QTextEdit 中文本的对齐方式。
tabStopWidth设置 QTextEdit 中制表符的宽度。

2.2 实例使用 - 槽函数的使用

下面我们根据QTextEdit 进行简单的使用,测试其槽函数👇

  1. 首先在图形化界面 创建一个Text Edit控件

在这里插入图片描述

  1. 利用转到槽功能,对该TextEdit控件的部分槽函数进行编写:
// 检测文本内容变化
void Widget::on_textEdit_textChanged()
{
    qDebug() << "textChanged(): " << ui->textEdit->toPlainText(); // 同理可以用tohtml; toMarkDown 获取不同形式的文本
}

// 选择的文本内容的变化
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;
}

执行上面的代码,当我们在 文本框中进行相关操作时,都会有相应的信息输出到终端上,这里不再演示。


2. QComboBox

2.1 介绍

在这里插入图片描述

我们可以查阅官方文档,对QComboBox 有更深的了解,这里直接进行总结:

QComboBox 是 Qt 框架中提供的一个组合框控件,用于在下拉列表中显示一组选项,并允许用户从中选择一个选项。

QComboBox有以下核心属性:

核心属性类型描述
currentIndexint当前选中项的索引
currentTextQString当前选中项的文本
countint下拉列表中选项的总数
editablebool下拉列表是否可编辑
sizeAdjustPolicyenum下拉列表的尺寸调整策略
modelQAbstractItemModel*QComboBox 使用的数据模型

2.2 实例使用

案例1:设置下拉框项目组件的方式

在QtCreator下,一般设置下拉框有两种方式:

  1. 代码设置
  2. 图形化界面直接设置

我们首先介绍 ②在Designer界面直接设置:

  1. 直接右击ComboBox 控件,点击编辑项目:
    在这里插入图片描述
  2. 在编辑项目界面可以直接进行进行项目的删改设置等:

在这里插入图片描述

对于 ① 用代码设置:

  1. 比如在widget.cpp 的构造函数中直接编写:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    
    ui->comboBox->addItem("项目1");
    ui->comboBox->addItem("项目2");
    ui->comboBox->addItem("项目3");
}

效果展示:

在这里插入图片描述

案例2:读取本机文件内容 到QComboBox

  1. 我们在本地路径下创建一个文档,输入几行内容:

在这里插入图片描述

  1. 随后利用C++中的iostream进行读取内容:
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    // 需要读取文件中的每一行,作为ComboBox的项目
    std::ifstream file("D:\\QComboBox_test.txt");
    if(!file.is_open())
    {
        qDebug() << "文件打开失败";
        return;
    }

    // 按行读取内容:
    std::string line;
    while(std::getline(file, line))
    {
        // 将内容转为QString再存入到ComboBox项目中
        ui->comboBox->addItem(QString::fromStdString(line));
    }
    // 关闭文件
    file.close();
}
  1. 此时执行代码,可以正确读取内容。

效果展示:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3基础教程(1)——nodejs环境搭建

博主个人小程序已经上线&#xff1a;【中二少年工具箱】 小程序二维如下&#xff1a; 正文开始 专栏简介1. 环境菜单2.为什么下载node3. nodejs简介4. nodejs安装5. 编辑器选择 专栏简介 本系列文章由浅入深&#xff0c;从基础知识到实战开发&#xff0c;非常适合入门同学。…

13.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-如果没有工具就创造工具

内容参考于&#xff1a; 易道云信息技术研究院VIP课 上一个内容 &#xff1a;12.游戏网络通信存在的问题 现在把游戏网络的架构看了一个小小的大概&#xff0c;可以用它的接口发数据接收数据了&#xff0c;如果真正想用它这一套东西&#xff0c;真正核心不在于它的接口而在于…

python实现AES加密解密

1. 前言 AES是一种对称加密&#xff0c;所谓对称加密就是加密与解密使用的秘钥是一个。 之前写过一片关于python AES加密解密的文章&#xff0c;但是这里面细节实在很多&#xff0c;这次我从 参数类型、加密模式、编码模式、补全模式、等等方面 系统的说明如何使用AES加密解密…

存储xss实现获取cookie(本地实战)

实战更能体验收获&#xff01;&#xff01;&#xff01; 环境准备&#xff1a; 1.phpstudy 2.dvwa靶场 实战 首先我们在phpstudy指定的localhost网站目录下编写一个xss.php文件&#xff0c;内容如下&#xff1a; <?php $cookie $_GET[cookie]; $ip getenv (REMOTE_…

零基础小白到底适不适合学鸿蒙,请看完这篇再决定吧~

随着华为鸿蒙系统的问世&#xff0c;不少技术小白在是否学习鸿蒙的问题上犹豫不决。鸿蒙作为华为自主研发的操作系统&#xff0c;拥有许多独特的技术优势和市场前景。但对于小白来说&#xff0c;是否值得投入时间和精力去学习鸿蒙开发呢&#xff1f; 1.鸿蒙系统开发&#xff1…

Java8 - LocalDateTime时间日期类使用详解

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…

云南经贸Day01

day01 一. VMware创建虚拟机二.VMware安装Linux三 虚拟机网络配置1. 查看网络信息2. 修改网络IP 四. 虚拟机操作管理1. 通过VMware为虚拟机拍摄快照2. VMware 为虚拟机执行克隆 五. Xshell的安装和使用 一. VMware创建虚拟机 二.VMware安装Linux 清华大学镜像源网址: https://m…

南方电网的能源棋局上,蔚来换电扮演什么角色?

2 月 26 日&#xff0c;南网储能科技与蔚来能源签署协议&#xff0c;将充换电站、储能站、可调负载等聚合资源连接到虚拟电厂平台&#xff0c;推动换电站作为分布式储能在虚拟电厂项目上的应用。 蔚来换电站是国内首个智慧微电网型分布式换电设施&#xff0c;可透过换电订单预…

【C++ map和set】

文章目录 map和set序列式容器和关联式容器键值对setset的主要操作 mapmap主要操作 multiset和multimap map和set 序列式容器和关联式容器 之前我们接触的vector,list,deque等&#xff0c;这些容器统称为序列式容器&#xff0c;其底层为线性序列的的数据结构&#xff0c;里面存…

面试数据库篇(mysql)- 08事务

原理 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 ACID是什么?可以详细说一下吗? 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全…

栈的概念结构和实现

文章目录 一、什么是栈二、栈的实现三、实现栈所需的函数四、完整栈的展现五、栈的思维导图 一、什么是栈 栈是一种特殊的线性表&#xff0c;只允许在固定的一端进行插入和删除操作。进行插入和删除的一段叫做栈顶&#xff0c;另一段叫做栈底 压栈&#xff1a;插入数据 出栈&a…

ShardingSphere 5.x 系列【18】自定义类分片算法

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 概述2. ClassBasedShardingAlgorithm3. 案例演示3.1 STANDARD3.2 COMPLEX…

【递归搜索回溯专栏】前言与本专栏介绍

本专栏内容为&#xff1a;递归&#xff0c;搜索与回溯算法专栏。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;递归搜索回溯专栏 &#x1f69a;代码仓库&#xff1a;小小unicorn的代…

视频学习胜过读书吗

现在&#xff0c;网上的课程视频和讲座视频&#xff0c;越来越多。同样的内容&#xff0c;可以读书学习&#xff0c;也可以视频学习&#xff0c;大家喜欢哪一种&#xff1f; 我比较喜欢读书&#xff0c;实在没耐心视频学习。 书籍只要随手一翻&#xff0c;就知道大概的内容了&…

[Android View] 可绘制形状 (Shape Xml)

一切以官方文档为主 官方文档https://developer.android.com/guide/topics/resources/drawable-resource?hlzh-cn#Shape 什么是可绘制形状 可以理解为用xml文件来描述一个简单的Drawable图形&#xff0c;比如说以下这段xml就可以用来描述一个白色的圆形&#xff1a; <?…

存储过程基本了解

文章目录 介绍存储过程示例1. 目的2. 输入参数3. 输出参数4. 执行逻辑5. 返回值6. 示例用法7. 注意事项 存储过程的关键字有哪些简单实操 介绍 存储过程是一组预编译的SQL语句&#xff0c;以及流程控制语句&#xff0c;封装在数据库服务器中并可以被重复调用。它们可以接收参数…

浅析扩散模型与图像生成【应用篇】(四)——Palette

4. Palette: Image-to-Image Diffusion Models 该文提出一种基于扩散模型的通用图像转换&#xff08;Image-to-Image Translation&#xff09;模型——Palette&#xff0c;可用于图像着色&#xff0c;图像修复&#xff0c;图像补全和JPEG图像恢复等多种转换任务。Palette是一种…

Harbor高可用(haproxy和keepalived)

Harbor高可用&#xff08;haproxy和keepalived&#xff09; 文章目录 Harbor高可用&#xff08;haproxy和keepalived&#xff09;1.Harbor高可用集群部署架构1.1 主机初始化1.1.1 设置网卡名和ip地址1.1.2 设置主机名1.1.3 配置镜像源1.1.4 关闭防火墙1.1.5 禁用SELinux1.1.6 设…

Linux Seccomp 简介

文章目录 一、简介二、架构三、Original/Strict Mode四、Seccomp-bpf五、seccomp系统调用六、Linux Capabilities and Seccomp6.1 Linux Capabilities6.2 Linux Seccomp 参考资料 一、简介 Seccomp&#xff08;secure computing&#xff09;是Linux内核中的一项计算机安全功能…

HTTPS是什么,详解它的加密过程

目录 1.前言 2.两种加密解密方式 2.1对称加密 2.2非对称加密 3.HTTPS的加密过程 3.1针对明文的对称加密 3.2针对密钥的非对称加密 3.3证书的作用 1.前言 我们知道HTTP协议是超文本传输协议,它被广泛的应用在客户端服务器上,用来传输文字,图片,视频,js,html等.但是这种传…