Qt中的基础类型以及常用类

1. 基础类型

因为Qt是一个C++框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型。

QT基本数据类型定义在#include <QtGlobal> 中,QT基本数据类型有:

类型名称 注释 备注
qint8 signed char 有符号8位数据
qint16 signed short 16位数据类型
qint32 signed short 32位有符号数据类型
qint64 long long int 或(__int64) 64位有符号数据类型,Windows中定义为__int64
qintptr qint32 或 qint64 指针类型 根据系统类型不同而不同,32位系统为qint32、64位系统为qint64
qlonglong long long int 或(__int64) Windows中定义为__int64
qptrdiff qint32 或 qint64 根据系统类型不同而不同,32位系统为qint32、64位系统为qint64
qreal double 或 float 除非配置了-qreal float选项,否则默认为double
quint8 unsigned char 无符号8位数据类型
quint16 unsigned short 无符号16位数据类型
quint32 unsigned int 无符号32位数据类型
quint64 unsigned long long int 或 (unsigned __int64) 无符号64比特数据类型,Windows中定义为unsigned __int64
quintptr quint32 或 quint64 根据系统类型不同而不同,32位系统为quint32、64位系统为quint64
qulonglong unsigned long long int 或 (unsigned __int64) Windows中定义为__int64
uchar unsigned char 无符号字符类型
uint unsigned int 无符号整型
ulong unsigned long 无符号长整型
ushort unsigned short 无符号短整型
qsizetype size_t

2. log输出

在Qt中进行log输出, 一般不使用c中的 printf, 也不是使用C++中的 cout, Qt框架提供了专门用于日志输出的类, 头文件名为 QDebug

基本分类

  • qDebug:调试信息提示

  • qInfo     :输出信息

  • qWarning :一般的警告提示

  • qCritical :严重的错误提示

  • qFatal :致命错误提示,会直接中断程序

C风格输出

qDebug("我是%s,今年%d岁了~","maye",20);
qInfo("maye%d",666);
qWarning("hello %s","warning");
qCritical("helo %s","critical");
qFatal("hello %s","qFatal");//致命错误会直接中断程序

C++风格


 qDebug()<<"好帅"<<endl;
 qInfo()<<"qInfo"<<endl;
 qWarning()<<"qWarnning"<<endl;
 qCritical()<<"qCritical"<<endl;
 #qFatal()<<"qFatal"<<endl;//致命错误不能用<<输出

3. 字符串类型

C     => char*

C++ => std::string

Qt => QByteArray, QString

3.1 QByteArray

在Qt中QByteArray可以看做是C语言中 char*的升级版本。我们在使用这种类型的时候可通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的字符串数据。

下面给大家介绍一下这个类中常用的一些API函数,大家要养成遇到问题主动查询帮助文档的好习惯

  • 构造函数
// 构造空对象, 里边没有数据
 QByteArray::QByteArray();
 // 将data中的size个字符进行构造, 得到一个字节数组对象
 // 如果 size==-1 函数内部自动计算字符串长度, 计算方式为: strlen(data)
 QByteArray::QByteArray(const char *data, int size = -1);
 // 构造一个长度为size个字节, 并且每个字节值都为ch的字节数组
 QByteArray::QByteArray(int size, char ch);
  • 数据操作
// 其他重载的同名函数可参考Qt帮助文档, 此处略
 QByteArray &QByteArray::append(const QByteArray &ba);
 void QByteArray::push_back(const QByteArray &other);
 
 // 其他重载的同名函数可参考Qt帮助文档, 此处略
 QByteArray &QByteArray::prepend(const QByteArray &ba);
 void QByteArray::push_front(const QByteArray &other);
 
 // 插入数据, 将ba插入到数组第 i 个字节的位置(从0开始)
 // 其他重载的同名函数可参考Qt帮助文档, 此处略
 QByteArray &QByteArray::insert(int i, const QByteArray &ba);
 
 // 删除数据
 // 从大字符串中删除len个字符, 从第pos个字符的位置开始删除
 QByteArray &QByteArray::remove(int pos, int len);
 // 从字符数组的尾部删除 n 个字节
 void QByteArray::chop(int n);
 // 从字节数组的 pos 位置将数组截断 (前边部分留下, 后边部分被删除)
 void QByteArray::truncate(int pos);
 // 将对象中的数据清空, 使其为null
 void QByteArray::clear();
 
 // 字符串替换
 // 将字节数组中的 子字符串 before 替换为 after
 // 其他重载的同名函数可参考Qt帮助文档, 此处略
 QByteArray &QByteArray::replace(const QByteArray &before, const QByteArray &after);
  • 子字符串查找和判断
 // 判断字节数组中是否包含子字符串 ba, 包含返回true, 否则返回false
 bool QByteArray::contains(const QByteArray &ba) const;
 bool QByteArray::contains(const char *ba) const;
 // 判断字节数组中是否包含子字符 ch, 包含返回true, 否则返回false
 bool QByteArray::contains(char ch) const;
 
 // 判断字节数组是否以字符串 ba 开始, 是返回true, 不是返回false
 bool QByteArray::startsWith(const QByteArray &ba) const;
 bool QByteArray::startsWith(const char *ba) const;
 // 判断字节数组是否以字符 ch 开始, 是返回true, 不是返回false
 bool QByteArray::startsWith(char ch) const;
 
 // 判断字节数组是否以字符串 ba 结尾, 是返回true, 不是返回false
 bool QByteArray::endsWith(const QByteArray &ba) const;
 bool QByteArray::endsWith(const char *ba) const;
 // 判断字节数组是否以字符 ch 结尾, 是返回true, 不是返回false
 bool QByteArray::endsWith(char ch) const;
  • 遍历
 // 使用迭代器
 iterator QByteArray::begin();
 iterator QByteArray::end();
 
 // 使用数组的方式进行遍历
 // i的取值范围 0 <= i < size()
 char QByteArray::at(int i) const;
 char
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值