Pregunta

Tengo un QTreeWidget con varias columnas, puedo añadir QTreeWidgetItems a ella. Trato de hacer la segunda columna contiene un valor numérico para cada Item así que puede ordenar los elementos por este valor

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

No puedo encontrar ninguna documentación sobre lo que este argumento es role. Todo lo que sé es que si lo fijo a 1 o 2, algo que aparece en la columna, si lo fijo a 0 o> = 3, no aparece nada en la columna, sin tener en cuenta, los números siempre terminan siendo ordenados alfabéticamente, el cual es un error.

¿Fue útil?

Solución

Puede utilizar el Qt :: UserRole para fines específicos de la aplicación. Dado que estos datos es un QVariant, se puede crear un QList para establecer múltiples datos y después echarlo a QVariant y establezca los datos.

Aquí es un ejemplo:

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

Otros consejos

La documentación pertinente se puede encontrar en Qt :: ItemDataRole (encontrado a través de QAbstractItemModel :: setData ) . Las funciones se utilizan para especificar lo que los datos que está de paso se debe utilizar para. Se pueden utilizar diferentes funciones para configurar la información de herramienta, la fuente o el color de un elemento, entre otras cosas.

Tenga en cuenta que item->text() es una comodidad equivalente a item->data(Qt::DisplayRole).toString()

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top