Question

I have the following datastructure.

QList<QVariant> fieldsList

How can I sort this list? This list contains strings. I want to sort the fieldList alphabetically?

Was it helpful?

Solution 2

I would do sorting in the following way:

 // 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);
 }

Update: in QT5 the qSort obsoleted. But it is still available to support old source codes. It is highly recommended to use std::sort instead of that in new codes.

OTHER TIPS

In Qt5, it seems qSort is deprecated. It's recommended to use:

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

Reference: site

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;
        }
    }
}    
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top