网站服务方案2022昆明今天刚刚发生的新闻
news/
2025/10/4 20:40:06/
文章来源:
网站服务方案,2022昆明今天刚刚发生的新闻,天津建设工程信息网 招标发布软件,全网营销课程常用类 目录 1. QString 字符串类#xff08;掌握#xff09; 2. 容器类#xff08;掌握#xff09; 2.1 顺序容器QList 2.2 关联容器QMap 3. 几种Qt数据类型#xff08;熟悉#xff09; 3.1 跨平台数据类型 3.2 QVariant 统一数据类型 3.3 QStringList 字符串列表 4. QD… 常用类 目录 1. QString 字符串类掌握 2. 容器类掌握 2.1 顺序容器QList 2.2 关联容器QMap 3. 几种Qt数据类型熟悉 3.1 跨平台数据类型 3.2 QVariant 统一数据类型 3.3 QStringList 字符串列表 4. QDateTime 日期时间类掌握 4.1 时间戳 4.2 生成随机数 4.3 格式化 5. QTimer 定时器类掌握 本章学习内容主要是一些开发中常用的类这些类均不继承QWidget没有可视化效果。 1. QString 字符串类掌握 QString是Qt字符串类型采用Unicode编码支持常见各国字符因此一个字符是一个16位的QChar而不是之前C/C中8位的char因此QString处理中文没有问题且一个汉字算作一个字符。 QString支持C中std::string常用的API在此基础上又新增了Qt风格的API。 QString的API非常多以下是常用API的相关词汇需要做到英译汉的水平。 举几个函数讲解 // 数字 → QString
// 参数1原数字
// 参数2进制
// 返回值转换后的QString
QString QString::number(int n, int base 10) [sta // 数字 → QString
// 参数1原数字
// 参数2进制
// 返回值转换后的QString支持链式调用
QString setNum(int n, int base 10) // QString → 数字
// 参数1转换是否成功
// 参数2进制
// 返回值转换之后的数字如果失败返回0
int toInt(bool * ok 0, int base 10) const main.cpp #include dialog.h
#include QApplication
#include QDebugint main(int argc, char *argv[])
{QApplication a(argc, argv);QString str 你好こんにちは;qDebug() str;qDebug() str.size() endl;// 把十进制的36转换为37进制int i 36;QString text QString::number(i,37);qDebug() text;i 255;// 链式调用qDebug() text.setNum(i,16).append(哈哈).prepend(转换结果);bool result;// QString → inttext 0;i text.toInt(result);qDebug() i; // 0qDebug() result; // truetext 56834cvgfgf;i text.toInt(result);qDebug() i; // 0qDebug() result; // falsereturn 0;
}2. 容器类掌握 2.1 顺序容器QList Qt 的容器类比标准模板库STL中的容器类更轻巧、安全和易于使用。这些容器类是隐式共享和可重入的而且它们进行了速度和存储优化因此可以减少可执行文件的大小。此外它们还是线程安全的也就是说它们作为只读容器时可被多个线程访问。 QList 是最常用的容器类虽然它是以数组列表的形式实现的但是在其前或后添加数据非常快QList以下标索引的方式对数据项进行访问。 本节使用QList存储一个自定义C类型的元素以下是在Qt项目中创建一个C类的操作步骤 1. 在Qt Creator中选中项目名称鼠标右键点击“添加新文件”。 2. 在弹出的窗口中按照下图所示进行操作。 3. 在弹出的窗口中定义类。 4. 在项目管理界面直接点击完成。可以在项目看到新创建类的头文件和源文件。 5. 在使用时只需要引入自定义类的头文件即可。 Qt新增Java风格的迭代器与STL迭代器的对应关系如下 通过网盘分享的文件Day3_24072_QString.zip 链接: https://pan.baidu.com/s/1QhYSm9MDrAqrHxxRI9IJAA 提取码: pbez --来自百度网盘超级会员v7的分享 2.2 关联容器QMap 同样QMap学习方式与QList几乎相同也存在两种风格迭代器的对应关系。 main.cpp #include QDebug
#include QMapint main()
{QMapQString,QString ma; // 创建对象// 添加数据ma[姓名] 张三;ma[姓名] 李四; // 因为键已经存在因此变为修改qDebug() ma;ma.insert(职业,销售);ma.insert(职业,码农); // 因为键已经存在因此变为修改qDebug() ma;// 判断键有没有if(ma.contains(姓名)){qDebug() 有这个键;}elseqDebug() 没这个键;// 取出对应的值// 参数1键// 参数2默认值qDebug() ma.value(职业,待业);qDebug() ma.value(学历,小学);// 删除键值对int result ma.remove(职业2);if(result){qDebug() 删除成功;}else{qDebug() 删除失败;}// STL 遍历for(QMapQString,QString::iterator iter ma.begin();iter ! ma.end();iter){// 通过迭代器取出键和值qDebug() iter.key() iter.value();}// Java 遍历QMutableMapIteratorQString,QString iter(ma);while(iter.hasNext()){iter.next(); // 向后移动qDebug() iter.key() iter.value(); // 取出}return 0;
}3. 几种Qt数据类型熟悉 后续一些API中可能出现以下几种数据类型。 3.1 跨平台数据类型 为了确保在各个平台上各数据类型都有统一确定的长度Qt 为各种常见数据类型定义了类型符号。 3.2 QVariant 统一数据类型 QVariant可以把Qt中常见的数据类型统一化即常见数据类型可以转换为QVarient对象构造函数QVariant对象也可以转换为常见数据类型。 #include QDebugint main()
{// 甚至可以借助QVariant进行数据转换int a 12;QVariant v(a);QString text v.toString();qDebug() text;QVariant v2(text);QStringList lis v2.toStringList();qDebug() lis;return 0;
}3.3 QStringList 字符串列表 可等同于QListQString会在部分API中出现。 4. QDateTime 日期时间类掌握 QDateTime类可以同时处理日期和时间是QDate类日期类与QTime时间类类的合并。 4.1 时间戳 可以使用下面的函数获取时间戳。 // 返回一个从1970-01-01 00:00:00到现在的毫秒数格林威治时间
qint64 QDateTime::currentMSecsSinceEpoch() [static] 可以在一段代码的前后分别调用此函数作差简单估算代码运行时长。 4.2 生成随机数 可以使用上面的函数作为随机数种子生成随机数。 需要注意随机数种子不能重复的问题即不要使用同一个时间戳连续生成随机数。 4.3 格式化 格式化可以把日期和时间生成为制定格式的字符串相关函数如下 // 获得一个包含当前时区日期时间数据的QDateTime对象数据来源于本地系统时钟
QDateTime QDateTime::currentDateTime() [static] // 按照制定格式提取QDateTime内部的数据
// 参数格式见下表或自行查阅文档
// 返回值符合格式的字符串
QString QDateTime::toString(const QString format) const 通过网盘分享的文件Day4_24072_QDateTime.zip 链接: https://pan.baidu.com/s/1-LLVvM_ygJPbT2yndwQXAQ 提取码: w1nn --来自百度网盘超级会员v7的分享 5. QTimer 定时器类掌握 QTimer类可以执行一个延时的任务或周期性任务。 常用属性如下 active : const bool 定时器是否在运行通过getter获取当前的运行状态。 interval : int 如果是一次性定时器此属性表示延迟时间如果是周期性定时器此属性表示间隔时间单位毫秒。 singleShot : bool 是否是一次性 相关函数如下 // 构造函数
QTimer::QTimer(QObject * parent 0)// 启动定时器如果定时器已经运行此函数会停止定时器运行并重新运行
void QTimer::start() [slot]// 停止定时器
void QTimer::stop() [slot]// 定时器触发时发射的信号
void QTimer::timeout() [signal] 项目源码 通过网盘分享的文件Day4_24072_QTimer.zip 链接: https://pan.baidu.com/s/17nGMC3fWBqn4uYWYTM_8HA 提取码: aj4a --来自百度网盘超级会员v7的分享
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927532.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!