QT常用工具类函数封装汇总

**
更新时间:2020-07-25 **
对于一个懒人+健忘症,肯定是把所有常用的函数使用方法记录到小本本上,到时候直接ctrl+f查找使用。哈哈哈
下面我给一些比较常用到的封装函数给大家参考。
(主要都是给自己看的)
1.//获取当前时间
所需头文件:
#include < QDateTime>

QString getdate() { QDateTime current_date_time = QDateTime::currentDateTime(); QString date = current_date_time.toString("yyyy-MM-dd hh:mm::ss.zzz"); qDebug()<

2.//读取本地配置文件信息–以mysql数据库为例
所需头文件:
#include < QSettings>
QSettings *configIni=new QSettings("./debug/config.ini",QSettings::IniFormat); QString address=configIni->value("MysqlMsg/address").toString(); QString account =configIni->value("MysqlMsg/account").toString(); QString password =configIni->value("MysqlMsg/password").toString(); QString dbname =configIni->value("MysqlMsg/dbname").toString(); int port=configIni->value("MysqlMsg/port").toInt(); delete configIni; //读取完成删除指针

路径和名称什么的自己修改
3.//分割字符串
所需头文件:
#include < QList>
QString str="123; 456; "; QStringList fgMsg=str.split("; "); QString str2=fgMsg.at(0);

4.//获取本机mac地址
所需头文件:
#include < QNetworkInterface>
QString getmacaddress() { QList nets = QNetworkInterface::allInterfaces(); // 获取所有网络接口列表 int nCnt = nets.count(); QString strMacAddr = ""; for(int i = 0; i < nCnt; i ++) { // 如果此网络接口被激活并且正在运行并且不是回环地址,则就是我们需要找的Mac地址 if(nets[i].flags().testFlag(QNetworkInterface::IsUp) && nets[i].flags().testFlag(QNetworkInterface::IsRunning) && !nets[i].flags().testFlag(QNetworkInterface::IsLoopBack)) { strMacAddr = nets[i].hardwareAddress(); break; } } return strMacAddr; }

根据当前网口名,通过配置进行筛选,获取对应的网口mac物理地址
macType为配置文件的网口名称
(适用于双网卡的服务器)
//获取mac地址 QString getMacAddress() { //qDebug()<<"macType:"< network = QNetworkInterface::allInterfaces(); foreach (QNetworkInterface i, network) { QString netName = i.humanReadableName(); //qDebug()<<"netName:"<

5.获取时间戳(毫秒级)
所需头文件:
#include < QDateTime>
2种:
qint64 getunixtime() { QString timestamp = QString::number(QDateTime::currentMSecsSinceEpoch()); qint64 time= timestamp.toLongLong(); return time; } QString getunixtime() { QString timestamp = QString::number(QDateTime::currentMSecsSinceEpoch()); return timestamp; }

6.读取本地图片为base64位图片
所需头文件:
pro文件添加QT += gui
#include < QImage>
#include < QBuffer>
QString pictoBase64(const QString & imgPath) { QImage image(imgPath); QByteArray ba; QBuffer buf(&ba); image.save(&buf, "jpg"); QByteArray hexed = ba.toBase64(); buf.close(); QString basepic = hexed; return basepic; }

7.获取当前exe的路径
所需头文件:
#include < QCoreApplication>
QString execurrentPath = QCoreApplication::applicationDirPath(); qDebug()<<"execurrentPath"<

8.单次和多次执行的定时器使用
所需头文件:
#include < QTimer>
//单次执行定时器 //定时时间-对象-执行的槽函数 //lamdba QTimer::singleShot(1000, this, [=] { //想要执行的代码 }); QTimer::singleShot( 1000, this,SLOT(printMsg()); //多次执行定时器 timer= new QTimer(); connect(timer, SIGNAL(timeout()), this, SLOT(槽函数名())); timer->start(60 * 1000); //1mintimer->stop(); //停止定时器 delete timer; //删除定时器指针

9.打印中文
所需头文件:
#include < QDebug>
qDebug()<

10.判断两个QString是否相等
QString str = QString::fromLocal8Bit("球形"); QString str2; if(str.compare(QString::fromLocal8Bit("球形") == 0)if(str.compare(str2) == 0) 或者: if(str ==QString::fromLocal8Bit("球形")) { }

11.QProcess调用cmd命令–重启关闭电脑
所需头文件:
#include < QProcess >
QProcess p; p.start("shutdown -r -t 10"); //10s重启电脑 p.start("shutdown -s -t 10"); //10s关闭电脑 p.waitForStarted(); p.waitForFinished(); qDebug()<

12.QString字符串查找子字符串
Qt::CaseSensitive 字符大小写敏感(字母分大小写)
Qt::CaseInsensitive 无大小写敏感 (字母不分大小写)
QString aa="abc你好"; if (aa.contains("你好", Qt::CaseSensitive)) { qDebug()<<"123"; }

【QT常用工具类函数封装汇总】持续更新~
不得不说,qt的强大功能真的是太舒服了。
提供了很多常用的方法,不需要再自己写了。

    推荐阅读