
Originally Posted by
Jimmy2775
However, I would still like to know what the problem was with my origional code that would cause it not to compile so I can understand it better.
You were trying to use a pointer to a method instead of a pointer to a standalone function.
This should work:
{
return s1.toLower() < s2.toLower();
}
{
return s1.toLower() > s2.toLower();
}
{
if ( order == Qt::AscendingOrder )
{
qSort(stringList.begin(), stringList.end(), caseInsensitiveLessThan);
}
else
{
qSort(stringList.begin(), stringList.end(), caseInsensitiveGreaterThan);
}
return stringList;
}
bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
{
return s1.toLower() < s2.toLower();
}
bool caseInsensitiveGreaterThan(const QString &s1, const QString &s2)
{
return s1.toLower() > s2.toLower();
}
QStringList MyClass::sort(QStringList stringList, Qt::SortOrder order)
{
if ( order == Qt::AscendingOrder )
{
qSort(stringList.begin(), stringList.end(), caseInsensitiveLessThan);
}
else
{
qSort(stringList.begin(), stringList.end(), caseInsensitiveGreaterThan);
}
return stringList;
}
To copy to clipboard, switch view to plain text mode
Bookmarks