[gelöst] QList sortieren?

Alles rund um die Programmierung mit Qt
Antworten
Marco812
Beiträge: 139
Registriert: 22. November 2005 11:28

[gelöst] QList sortieren?

Beitrag 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
Zuletzt geändert von Marco812 am 6. März 2006 20:02, insgesamt 2-mal geändert.
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Re: QList sortieren?

Beitrag 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...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Marco812
Beiträge: 139
Registriert: 22. November 2005 11:28

Beitrag von Marco812 »

Hallo,

so geht es vielen Dank.

Gruß

Marco812
sascha
Beiträge: 37
Registriert: 12. Januar 2006 11:01

Beitrag 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>
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag 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
Glaube an eine Lösung, nur dann kannst du auch eine finden.
sascha
Beiträge: 37
Registriert: 12. Januar 2006 11:01

Beitrag von sascha »

Jau danke, genau daran lag es!
Antworten