• Qt中的基础数据类型


    1.基础类型

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

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

    类型名称 注释 备注
    qint8 signed char 有符号8位数据
    qint16 signed short 16位数据类型
    qint32 signed int 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    无符号短整型

    2.log输出

    2.1 在调试窗口中输入日志

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

     创建一个新项目:添加头文件#include  

            qDebug() << "I'm rich" << "*" << 100000000;

    运行结果:会在窗口下面应用程序输出下输出我们输入的数据:

    2.2 在终端窗口中输出日志

    如果想要数据在调试窗口中输出:

    (1)点开.pro文件:在CONFIG += c++17 后面添加 console

     (2)点击项目右键选择重新构造

    (3)在Windows上再次编译就会出现一个调试窗口了, MacOS没有调试窗口。

    3.字符串类型

            在Qt中不仅支持C, C++中的字符串类型, 而且还在框架中定义了专属的字符串类型, 我们必须要掌握在Qt中关于这些类型的使用和相互之间的转换

    语言类型 字符串类型
    C char *
    C++ std::string 、char *
    Qt QByteArray, QString 等

    3.1 QByteArray

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

    QByteArray构造函数:

    // 构造空对象, 里边没有数据
    QByteArray::QByteArray();
     

    // 将data中的size个字符进行构造, 得到一个字节数组对象
    // 如果 size==-1 函数内部自动计算字符串长度, 计算方式为: strlen(data)

    QByteArray::QByteArray(const char *data, int size = -1);
     

    // 构造一个长度为size个字节, 并且每个字节值都为ch的字节数组
    QByteArray::QByteArray(int size, char ch);

    QByteArray数据操作:

    // 在尾部追加数据
    // 其他重载的同名函数可参考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);

     QByteArray子字符串查找和判断:

    // 判断字节数组中是否包含子字符串 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;

    QByteArray遍历:

    // 使用迭代器
    iterator QByteArray::begin();
    iterator QByteArray::end();

    // 使用数组的方式进行遍历
    // i的取值范围 0 <= i < size()

    char QByteArray::at(int i) const;
    char QByteArray::operator[](int i) const;

    QByteArray查看字节数:

    // 返回字节数组对象中字符的个数
    int QByteArray::length() const;
    int QByteArray::size() const;
    int QByteArray::count() const;

    // 返回字节数组对象中 子字符串ba 出现的次数
    int QByteArray::count(const QByteArray &ba) const;
    int QByteArray::count(const char *ba) const;
     

    // 返回字节数组对象中 字符串ch 出现的次数
    int QByteArray::count(char ch) const;

     QByteArray类型转换:

    // 将QByteArray类型的字符串 转换为 char* 类型
    char *QByteArray::data();
    const char *QByteArray::data() const;

    // int, short, long, float, double -> QByteArray
    // 其他重载的同名函数可参考Qt帮助文档, 此处略

    QByteArray &QByteArray::setNum(int n, int base = 10);
    QByteArray &QByteArray::setNum(short n, int base = 10);
    QByteArray &QByteArray::setNum(qlonglong n, int base = 10);
    QByteArray &QByteArray::setNum(float n, char f = 'g', int prec = 6);
    QByteArray &QByteArray::setNum(double n, char f = 'g', int prec = 6);
    [static] QByteArray QByteArray::number(int n, int base = 10);
    [static] QByteArray QByteArray::number(qlonglong n, int base = 10);
    [static] QByteArray QByteArray::number(double n, char f = 'g', int prec = 6);

    // QByteArray -> int, short, long, float, double
    int QByteArray::toInt(bool *ok = Q_NULLPTR, int base = 10) const;
    short QByteArray::toShort(bool *ok = Q_NULLPTR, int base = 10) const;
    long QByteA

  • 相关阅读:
    linux 系统中安装docker
    解决方案不显示分类的
    面试、工作中常用sql大全(建议收藏备用)
    面试20220803
    Generalization
    Pandas数据过滤的多种方式
    我的Qt作品(15)使用Qt+OpenCV实现一个卡尺工具,具备找线和找圆的功能
    Android Studio实现课程表应用,美观又实用(Kotlin版本)
    LeetCode每日一题 分发糖果
    curl命令使用
  • 原文地址:https://blog.csdn.net/weixin_44954230/article/details/133616261