什么是在QTreeWidgetItem的作用?
-
21-08-2019 - |
题
我有若干列一个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的:: ItemDataRole (通过化QAbstractItemModel ::使用setData 找到) 。角色是用来指定你所传递的数据应该用于。可以使用不同的角色来设置的项目的工具提示,字体或颜色,等等。
请注意item->text()
是一个方便相当于item->data(Qt::DisplayRole).toString()
不隶属于 StackOverflow