Qt知识笔记(二)——数据类型

基础数据类型

C++所有的数据类型和语法在Qt中都支持,虽然在Qt中有属于自己的整形或者浮点型, 但一般不用, 常用的类型关键字还是 C/C++中的 int, float, double 等。

字符串类型

Qt有自己的字符串类型,这里介绍QByteArray,QString,它们的API函数可以查阅Qt助手。

1.QByteArray

我们可以通过这个类的构造函数申请一块动态内存,用于存储我们需要处理的字符串数据

2.QString

QString 也是封装了字符串,但是内部的编码为 utf8, UTF-8 属于 Unicode 字符集,它固定使用多个字节(window为2字节, linux为3字节)来表示一个字符,这样可以将世界上几乎所有语言的常用字符收录其中。

QVariant

QVariant类似于C++的union数据类型,能够保存很多Qt类型的值,并且包括C++基本类型。
自定义类型也可以使用QVariant类进行封装,被QVariant存储的数据类型需要一个默认的构造函数和一个拷贝构造函数。为了实现这个功能,首先必须使用 Q_DECLARE_METATYPE() 宏。通常会将这个宏放在类的声明所在头文件的下面。Q_DECLARE_METATYPE(Type)
使用如下:

1.在头文件中声明

// *.h
struct MyTest
{
    int id;
    QString name;
};
// 自定义类型注册
Q_DECLARE_METATYPE(MyTest)

2.在源文件中定义

MyTest t;
t.name = "张三丰";
t.num = 666;
// 值的封装
QVariant vt = QVariant::fromValue(t);

// 值的读取
if(vt.canConvert<MyTest>())
{
    MyTest t = vt.value<MyTest>();
    qDebug() << "name: " << t.name << ", num: " << t.num;
}

来源

Log日志输出

Qt 框架提供了专门用于日志输出的类,头文件名为 QDebug, 日志信息在 IDE 的调试窗口输出,如:

qDebug()<<"hhh";

上面的方法只能在项目调试过程中进行日志输出,默认情况下是不会打印到终端窗口的,如果想要打印到终端窗口则要在.pro中添加控制台属性

CONFIG += C++11 console

位置和尺寸

Qt中对点,线,尺寸,矩形都进行了封装
QPoint 类封装了我们常用到的坐标点 (x, y)
QLine 是一个直线类,封装了两个坐标点 (两点确定一条直线)
QSize 类用来形容长度和宽度
QRect 类来描述一个矩形
上面这4个类的API可以查阅Qt助手

日期和时间

Qt对日期和时间也封装了相关的类:QDate,QTime,QDateTime
QDate 类封装了日期信息,可以通过这个类得到日期相关的信息,包括: 年 , 月 , 日
QTime 类封装了时间信息,可以通过这个类得到时间相关的信息,包括: 时 , 分 , 秒 , 毫秒
QDateTime 类封装了日期和时间信息,可以通过这个类得到日期和时间相关的信息,包括: 年 , 月 , 日 , 时 , 分 , 秒 , 毫秒。这个类其实就是 QDate 和 QTime 这两个类的结合体。
同样,它们的API可以查阅Qt助手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值