QT 五、常用类

这篇博客主要介绍了QT开发中的常用类,包括QString字符串类及其转换方法,QList和QMap这两种容器类的使用,跨平台数据类型,时间日期处理的QDateTime类,以及QTimer定时器类的功能和用法。博客提供了相关代码示例的下载链接。
摘要由CSDN通过智能技术生成

五、常用类

1. QString 字符串类(掌握)

QString是Qt中的字符串类,使用Unicode编码,而不是ASCII码。在C++中字符使用8位的char类型表示一个字符,但是在Qt中使用16位的QChar表示一个字符。因此Qt处理中文没有任何问题,并且一个汉字算作一个字符。

QString类整体使用与std::string类似,但是在API上有所不同。

常用函数如下:

● QString QString::number(int n, int base = 10) [static]

数字→字符串

参数1:要转换的数字

参数2:进制

● QString & QString::setNum(int n, int base = 10)

数字→字符串,支持链式调用

参数1:要转换的数字

参数2:进制

● int QString::toInt(bool * ok = 0, int base = 10) const

字符串→数字

参数1:转换的结果,成功或失败

参数2:进制

返回值:转换的结果,数字;如果失败,返回0。

dialog.cpp

#include "dialog.h"#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :    QDialog(parent),    ui(new Ui::Dialog){    ui->setupUi(this);    QString str = "你好吗αβγāáǎàあいうㅞㅝ";    qDebug() << str.size();    for(int i=0;i<str.size();i++)    {        qDebug() << str.at(i);    }    // 判断字符串是否为空    qDebug() << str.isEmpty();    str.append("fdf");    qDebug() << str;    // 基于16进制转换    int i = 16;    qDebug() << QString::number(i,16);    // 支持链式调用的转换    qDebug() << str.setNum(255,16).prepend("0x");    str = "0";    bool result; // 转换成功或失败的结果    // QString → int    int m = str.toInt(&result,10);    if(result)        qDebug() << "转换成功:" << m;    else        qDebug() << "转换失败:" << m;}Dialog::~Dialog(){    delete ui;}

由于QString类函数众多,无需死记每个函数,只需要把常用的函数单词记住,随用随查即可。

2. 容器类(掌握)

Qt重新实现了C++中的容器类,这些容器类比C++中STL的容器类更加轻巧、安全和易于使用,使用Qt的容器类可以减少可执行文件的大小,Qt的容器类是线程安全的,在基本兼容C++的容器类接口的基础上拓展了新的接口。

分别以QList和QMap为例,进行顺序容器和关联容器的讲解。

2.1 QList

自定义一个C++类,作为QList的元素类型。

下面是创建自定义的C++类的步骤:

1. 在Qt Creator中选中项目名称,鼠标右键,点击“添加新文件”。

2. 在弹出的窗口中,按照下图所示进行操作。

3. 在弹出的窗口中,输入类名后点击“下一步”。

4. 在项目管理界面,直接点击“完成”。可以看到项目中多了新创建的类的头文件和源文件。

QList<Student>示例代码下载链接:https://pan.baidu.com/s/18mb6AsT8mqRcTDrzkAj5-Q

提取码:hqyj

--来自百度网盘超级会员V6的分享

需要注意的是,QStringList类型基本等同QList<QString>,后面不再赘述。

2.2 QMap

示例代码下载链接:https://pan.baidu.com/s/1H_b72YrKr_lyb-7gprYfMQ

提取码:hqyj

--来自百度网盘超级会员V6的分享

3. 跨平台数据类型(了解)

Qt是一个跨平台的开发框架,为了确保在各个平台上的数据类型具有同一的长度,Qt为各种常用的基本数据类型定义了类型符号。

除此之外,Qt中还有一个通用数据类型QVariant,可以对常见的Qt数据类型进行相互转换,也可以使用QVariant类型作为中间类型间接转换不同数据类型。

4. 时间和日期处理(掌握)

Qt拥有若干时间和日期相关类型,本次使用QDateTime类进行讲解。

QDateTime类常用函数如下所示。

● qint64 QDateTime::currentMSecsSinceEpoch() [static]

返回1970年1月1日 0点0分0秒到现在的毫秒数

● QDateTime QDateTime::currentDateTime() [static]

返回一个基于当前时区的时间和日期信息的QDateTime对象

● QString QDateTime::toString(const QString & format) const

返回一个自定义格式的时间日期字符串

参数是自定义的时间和日期格式。

时间和日期相关组件:

示例代码下载链接:https://pan.baidu.com/s/12e2uFhVKmNrnzk2RXqQInA

提取码:hqyj

--来自百度网盘超级会员V6的分享

5. QTimer 定时器类(掌握)

定时器类QTimer主要有两个功能:

● 周期性执行某个动作

● 延迟一段时间后执行某个动作

QTimer类与之前的QButtonGroup一样,需要手动控制堆内存对象的创建和销毁。

QTimer的常用属性如下所示。

● interval : int

如果是一次性的定时器,此属性表示延迟执行的时间;

如果是周期性的定时器,此属性表示间隔执行的时间。

时间单位毫秒。

● singleShot : bool

此属性表示定时器是否是一次性,如果不是一次性就是周期性。

QTImer的常用函数如下所示。

● void QTimer::start() [slot]

开始或重新开始定时器,如果定时器已经在运行,则会停止运行后再次运行。

● void QTimer::stop() [slot]

停止运行

● void QTimer::timeout() [signal]

定时器出发时发射的信号

示例代码下载链接:https://pan.baidu.com/s/1Bji6CfFjEJePVwcvY5pHeA

提取码:hqyj

--来自百度网盘超级会员V6的分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值