Frage

Ich habe eine QTreeWidget mit mehreren Spalten, füge ich QTreeWidgetItems zu. Ich versuche, die zweite Spalte, um einen numerischen Wert für jede Item enthalten, damit ich die Einzelteile durch diesen Wert sortieren

QTreeWidgetItem has a method called setData(int column, int role, QVariant(data))

Ich kann keine Dokumentation finden, was dieses role Argument. Alles, was ich weiß, ist, dass, wenn ich es auf 1 oder 2 gesetzt, was in der Spalte auftaucht, wenn ich es auf 0 oder> = 3 gesetzt, unabhängig in der Spalte, nichts auftaucht, immer die Zahlen in alphabetischer Reihenfolge am Ende sortiert werden, das ist falsch.

War es hilfreich?

Lösung

Sie können die Qt :: Userrole für bestimmte Zwecke Anwendung verwenden. Da diese Daten ein QVariant ist, können Sie eine QList erstellen, um mehrere Daten und danach muss er in QVariant und stellen Sie die Daten gesetzt.

Hier ist ein Beispiel:

QTreeWidgetItem* item = new QTreeWidgetItem();
QList<QVariant> dataList;
dataList.append("data 1");
dataList.append("data 2");
QVariant data(dataList);
item->setData(0, Qt::UserRole, data);

Andere Tipps

Die entsprechende Dokumentation finden Sie unter Qt :: ItemDataRole finden (gefunden durch QAbstractItemModel :: setData ) . Rollen werden verwendet, um festzulegen, was die Daten, die Sie vorbei sollten verwendet werden. Sie können verschiedene Rollen verwenden den Tooltip, Schriftart oder Farbe eines Elements zu setzen, unter anderem.

, dass item->text() Hinweis ist eine Bequemlichkeit entspricht item->data(Qt::DisplayRole).toString()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top