Domanda

Ho un QTreeWidget con diverse colonne, aggiungo QTreeWidgetItems ad esso. Provo a fare la seconda colonna contiene un valore numerico per ogni Item così posso ordinare gli oggetti da questo valore

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

Non riesco a trovare alcuna documentazione su ciò che questo argomento è role. Tutto quello che so è che se ho impostato a 1 o 2, qualcosa si presenta nella colonna, se ho impostato a 0 o> = 3, non si presenta nella colonna, a prescindere, i numeri finiscono sempre per essere in ordine alfabetico, che è sbagliato.

È stato utile?

Soluzione

È possibile utilizzare il Qt :: UserRole per scopi specifici di applicazione. Dal momento che questi dati è un QVariant, è possibile creare un QList per impostare più i dati e dopo che gettarlo ai QVariant e impostare i dati.

Ecco un esempio:

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

Altri suggerimenti

La documentazione pertinente, si trova nel Qt :: ItemDataRole (trovato attraverso QAbstractItemModel :: setData ) . I ruoli sono utilizzati per specificare ciò che i dati si sta passando deve essere utilizzato per. È possibile utilizzare diversi ruoli per impostare il tooltip, carattere o il colore di un oggetto, tra le altre cose.

Si noti che item->text() è una comodità equivalente a item->data(Qt::DisplayRole).toString()

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top