软件升级经常需要对升级包的版本与当前版本进行比较,如果升级包的版本大于当前版本才允许进行升级。一般而言,都是拆分字符串,然后逐个比较字符大小来判断软件版本的大小。但如果你使用的是QT环境,那么可以通过 QVersionNumber 来简化这一过程。
cpp
#include <QApplication>
#include <QVersionNumber>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QVersionNumber preVersion = QVersionNumber::fromString("1.0.5.31");
QVersionNumber curVersion = QVersionNumber::fromString("1.0.5.32");
QString verPrev = preVersion.toString();
QString verCurr = curVersion.toString();
qDebug() << "verPrev=" << verPrev;
qDebug() << "verCurr=" << verCurr;
if(preVersion < curVersion){
qDebug() << "preVersion is less than curVersion";
}
else if(preVersion == curVersion){
qDebug() << "preVersion is equal to curVersion";
}
else{
qDebug() << "curVersion is less than preVersion";
}
return a.exec();
}