如何在<QVariant>Qt中对QList进行排序?



我有以下数据结构。

QList<QVariant> fieldsList

如何对此列表进行排序?此列表包含字符串。我想按字母顺序对fieldList进行排序?

在Qt5中,似乎qSort已被弃用。建议使用:

#include <algorithm>
QList<QVariant> fieldsList;
std::sort(fieldsList.begin(), fieldsList.end());

参考:网站

我会按以下方式进行排序:

// Compare two variants.
bool variantLessThan(const QVariant &v1, const QVariant &v2)
{
return v1.toString() < v2.toString();
}
int doComparison()
{
[..]
QList<QVariant> fieldsList;
// Add items to fieldsList.
qSort(fieldsList.begin(), fieldsList.end(), variantLessThan);
}

更新: 在QT5中,qSort已经过时了。但它仍然可用于支持旧的源代码。强烈建议在新代码中使用std::sort而不是使用。

int n;
int i;
for (n=0; n < fieldsList.count(); n++)
{
for (i=n+1; i < fieldsList.count(); i++)
{
QString valorN=fieldsList.at(n).field();
QString valorI=fieldsList.at(i).field();
if (valorN.toUpper() > valorI.toUpper())
{
fieldsList.move(i, n);
n=0;
}
}
}    

相关内容

  • 没有找到相关文章

最新更新