我有一个带有几列的QTreeWidget,我向其中添加了QTreeWidgetItems。我尝试使第二列包含每个Item的数字值,以便我可以按此值对项目进行排序

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

我找不到有关role参数是什么的任何文档。我所知道的是,如果将其设置为1或2,则将在列中显示某些内容;如果将其设置为0或> = 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 - QTreeWidgetItem中的作用是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1076208/

10-10 22:11