有两个值:
QString str1 = "3.5.8", str2 = "20.3.6";
Run Code Online (Sandbox Code Playgroud)
让我们想象一下,这两个numbers代表了软件version。
众所周知,QString逐个字符进行比较。
如果我们以这种方式做出这个决定会怎么样:
str1.replace(".","");
str2.replace(".","");
int n = str1.toInt();
int m = str2.toInt();
if (n >= m)
{
qDebug() << "YES";
} else if (n <= m) {
qDebug() << "NO";
}
Run Code Online (Sandbox Code Playgroud)
也许有一个更优化和正确的方法来做到这一点。
您能否告诉我如何将这些值转换为数字,以便可以对它们进行整体比较。谢谢。
该类QVersionNumber旨在解决这个问题(需要 Qt 5.6+):
QVersionNumber version1 = QVersionNumber::fromString(str1);
QVersionNumber version2 = QVersionNumber::fromString(str2);
if (version1 > version2)
{
qDebug() << "YES";
}
else
{
qDebug() << "NO";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |