我有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(); QListdataList; dataList.append("data 1"); dataList.append("data 2"); QVariant data(dataList); item->setData(0, Qt::UserRole, data);
相关文档可以在Qt :: ItemDataRole(通过QAbstractItemModel :: setData找到)下找到.角色用于指定您传递的数据应该用于什么.您可以使用不同的角色来设置项目的工具提示,字体或颜色等.