Какова роль в QTreeWidgetItem?
У меня есть QTreeWidget
с несколькими столбцами, добавляю QTreeWidgetItems
к этому. Я пытаюсь сделать второй столбец содержать числовое значение для каждого Item
так что я могу сортировать элементы по этому значению
QTreeWidgetItem has a method called setData(int column, int role, QVariant(data))
Я не могу найти документацию о том, что это role
аргумент есть. Все, что я знаю, это то, что если я установлю его на 1 или 2, в столбце появится что-то, если я установлю на 0 или>=3, в столбце ничего не появится, независимо от того, что числа всегда будут отсортированы по алфавиту, что неправильно.
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()