QTreeWidgetItem中的角色是什么?

Nat*_*han 7 model-view-controller qt pyqt qabstractitemmodel

我有QTreeWidget几个列,我添加QTreeWidgetItems它.我尝试让第二列包含每个数值,Item以便我可以按此值对项目进行排序

QTreeWidgetItem has a method called setData(int column, int role, QVariant(data))
Run Code Online (Sandbox Code Playgroud)

我找不到关于这个role论点是什么的任何文档.我所知道的是,如果我将其设置为1或2,列中会显示某些内容,如果我将其设置为0或> = 3,则列中不显示任何内容,无论数字总是按字母顺序排序,这是错的.

ali*_*ami 8

您可以将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);
Run Code Online (Sandbox Code Playgroud)


Tom*_*ilä 6

相关文档可以在Qt :: ItemDataRole(通过QAbstractItemModel :: setData找到)下找到.角色用于指定您传递的数据应该用于什么.您可以使用不同的角色来设置项目的工具提示,字体或颜色等.