Seite 1 von 1

[gelöst] QList sortieren?

Verfasst: 6. März 2006 11:06
von Marco812
Hallo,

ich habe eine QList, wie kann ich diese nach objectName()Sortieren?
QList<QPushButton *> pbList= this->findChildren<QPushButton *>();

Ich habe es schon so versucht, geht aber nicht
qSort(pbList.begin(),pbList.end());

oder gibt es eine Möglichkeit einem QPushButton einen Wert zuzuweisen und in der Reihenfolge wird dieser dann aufgelistet in pbList.

Gruß

Marco812

Re: QList sortieren?

Verfasst: 6. März 2006 15:09
von Esleborn

Code: Alles auswählen

 bool lessObjectName (const QObject *fp_w1, const QObject *fp_w2)
{
   return fp_w1->objectName ( ) < fp_w2->objectName ( );
}

...
qSort(pbList.begin(),pbList.end(),lessObjectName);
...
könnte funktionieren, hab aber grad keine Zeit zum testen...

PS: Entsprechend kann die less natürlich auch nach einem zugeordneten Wert sortieren...

Verfasst: 6. März 2006 19:56
von Marco812
Hallo,

so geht es vielen Dank.

Gruß

Marco812

Verfasst: 13. März 2006 12:47
von sascha
Hallo!
Also ich habe das auch mal versucht, aber ich bekomme die Fehlermeldung:

"Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt."

Mein Code:

Code: Alles auswählen

void DataModel::addDataItem(const DataModelItem &item)
{
	m_Items.append(item);
	qStableSort(m_Items.begin(), m_Items.end(), dataItemLessThan);
    emit layoutChanged();
}

bool DataModel::dataItemLessThan(const DataModelItem &itemA, const DataModelItem &itemB)
{
	return itemA.getFileName() < itemB.getFileName();
} 
Hat einer eine Idee, warum das bei mir nicht geht?
Ach ja, m_Items ist ein QVector<DataModelItem>

Verfasst: 13. März 2006 15:37
von Esleborn
dataItemLessThan sollte keine Klassenfunktion sein, denke ich mal...

müsste aber gehen wenn du sie als statisch definierst und als DataModel::dataItemLessThan übergibst... bin aber net sicher

Verfasst: 13. März 2006 19:05
von sascha
Jau danke, genau daran lag es!