【Qt 开发基础体系】字符串类应用和常用的数据类型

1. Qt 字符串类应用

1.1 操作字符串

🍎 QString 提供一个二元的“+”操作符,主要用于组合两个字符串。QString str1 = "Hello world"传递给 QString 一个 const char*类型的 ASCII 字符串“Hello world”,它被解释为一个典型的以“\0”结尾的 C 类型字符串。

在这里插入图片描述

    // 1:QString 提供二元"+"操作符应用,功能一样"+="
    QString str1="Hello";
    str1=str1+"Qt Study!";

    // ①这个必须加上输出流头文件 #include <QDebug>
    qDebug()<<str1; // 打印信息(默认会有双引号)

    // ② qPrintable( ) 可以去掉字符串的双引号
    qDebug()<<qPrintable(str1); 

    QString str2="12345";
    str2+="ABCDE";
    qDebug()<<qPrintable(str2); // 去掉双引号


1.2 QString::append()函数

🍎 append()函数具备与“+=”操作符同样的功能,直接在一个字符串末尾添加另一个字符串;

在这里插入图片描述


1.3 QString::sprintf()函数

🍎组 合 字 符 串 : QString::sprintf() 。 其 实 它 跟 C++ 库 当 中
sprintf()函数一样。

在这里插入图片描述



1.4 QString::arg()函数

🍎字符串组合方式 QString::arg()函数,该函数的重载可以处理多种数据类型。因为它类型安全,同时支持 Unicode,可以改变%n 参数顺序

在这里插入图片描述



2. 查询字符串

2.1 函数 QString::startsWith()

🐧① 判断一个字符串是否以某个字符串开头

🐧② Qt::CaseInsensitive 代表大小写不敏感(即忽视大小写);

🐧③ Qt::CaseSensitive表示大小写敏感(考虑大小写,不能忽视);

🐧④ 还有一个关系函数:QString::endsWith(),(判断是否以某个字符串结尾)。

在这里插入图片描述


2.2 函数 QString::contains()

🍎🐧 判断一个指定的字符串是否出现过;

在这里插入图片描述



2.3 函数 QString::toInt()

将 字 符 串 转 换 为 整 型 数 值 。toDouble() /toFloat() / toLong()

在这里插入图片描述



2.4 函数 QString::compare()

对两个字符串进行比较;

在这里插入图片描述



2.5 将 QString 转换成 ASCII 码

在这里插入图片描述

  • QByteArray 的应用
    在这里插入图片描述


3.Qt 基本数据类型

在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt中,串口通信接收到的数据类型默认是`QByteArray`,而不是`QString`型。`QByteArray`是一个字节数组,可以包含任意型的数据,包括字符、数字、二进制数据等。 如果你希望将接收到的数据转换为`QString`型,可以使用`QString`的构造函数或者`QString::fromUtf8()`等函数进行转换。例如,如果你希望将接收到的数据转换为UTF-8编码的字符串,可以使用如下代码: ```c++ QByteArray data = serialPort->readAll(); // 读取串口数据 QString str = QString::fromUtf8(data); // 将数据转换为QString型的字符串 ``` 需要注意的是,如果接收到的数据不是UTF-8编码的字符串,那么使用`QString::fromUtf8()`函数进行转换可能会出现乱码或者转换失败的问题。如果你知道数据的编码方式,可以使用对应的转换函数,如`QString::fromLatin1()`、`QString::fromLocal8Bit()`等。 另外,如果你希望在接收到数据时立即将其转换为`QString`型,可以使用`QIODevice`的`readyRead`信号和`QTextStream`。例如,你可以在初始化串口时连接`readyRead`信号,并在信号处理函数中将接收到的数据转换为`QString`型,如下所示: ```c++ // 初始化串口 serialPort = new QSerialPort(this); serialPort->setPortName("COM1"); serialPort->setBaudRate(QSerialPort::Baud9600); serialPort->setDataBits(QSerialPort::Data8); serialPort->setParity(QSerialPort::NoParity); serialPort->setStopBits(QSerialPort::OneStop); // 连接readyRead信号 connect(serialPort, &QSerialPort::readyRead, this, [=]() { QTextStream in(serialPort); QString str = in.readAll(); // 处理接收到的数据 }); ``` 这样,在串口接收到数据时,`readyRead`信号会被触发,信号处理函数会将接收到的数据转换为`QString`型的字符串,并进行后续处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来可期LJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值