代码之家  ›  专栏  ›  技术社区  ›  Nathan

qtreeWidgetItem中的角色是什么?

  •  7
  • Nathan  · 技术社区  · 15 年前

    我有一个 QTreeWidget 加上几列 QTreeWidgetItems 对它。我试图使第二列包含每个列的数值 Item 所以我可以按这个值对项目进行排序

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

    我找不到关于这件事的任何文件 role 论点是。我只知道,如果我将其设置为1或2,列中会显示一些内容,如果我将其设置为0或>=3,列中不会显示任何内容,不管怎样,数字总是以字母顺序排序,这是错误的。

    3 回复  |  直到 7 年前
        1
  •  8
  •   alisami    15 年前

    您可以将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);
    
        2
  •  6
  •   azalea    10 年前

    相关文件见 Qt::ItemDataRole (通过 QAbstractItemModel::setData )角色用于指定要传递的数据应用于什么目的。您可以使用不同的角色设置项目的工具提示、字体或颜色等。

        3
  •  4
  •   PauloT    15 年前

    注意 item->text() 方便程度等同于 item->data(Qt::DisplayRole).toString()