Что такое роль в QTreeWidgetItem?

у меня есть QTreeWidget с несколькими столбцами, я добавить QTreeWidgetItems к нему. Я пытаюсь сделать второй столбец содержать числовое значение для каждого Item поэтому я могу сортировать элементы по этому значению

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

Я не могу найти никакой документации о том, что это

3 ответов


вы можете использовать Qt:: UserRole для конкретных целей приложения. Поскольку эти данные являются QVariant, вы можете создать QList для установки нескольких данных, а затем привести его к QVariant и установить данные.

вот пример:

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

соответствующую документацию можно найти в разделе Qt:: ItemDataRole (нашли через помощью переопределенной QAbstractItemModel::setdata при работе). Роли используются для указания того, для чего должны использоваться передаваемые данные. Вы можете использовать разные роли для установки всплывающей подсказки, шрифта или цвета элемента, среди прочего.


отметим, что item->text() - это удобство эквивалентно item->data(Qt::DisplayRole).toString()