Cirfe 2015-04-09 12:06 采纳率: 50%
浏览 4114

关于Qt中qTreeWidgetItem的setData问题

QTreeWidgetItem中的setData函数,

 void QTreeWidgetItem::setData ( int column, int role, const QVariant & value )

我在用的时候,在一个叶子节点中保存多个数据,是采用setData(1,32,data1),setData(2,32,data2)....这种方式。但是我实在是搞不明白,这个column作用是干什么的?有什么意义???

如果说我采用model/view方式,自己定义model能不能实现一个叶子节点保存多个数据这种效果??

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:42
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这篇文章讲的很详细,请看:QT的QTreeWidgetItem类的使用
    • 除此之外, 这篇博客: Qt模型视图框架:QTreeWidgetItem、QTreeWidgetItemIterator中的 QTreeWidgetItem 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      QTreeWidgetItem 类提供了一个与 QTreeWidget 类一起使用的项目。例:

           QTreeWidgetItem *cities = new QTreeWidgetItem(treeWidget);
           cities->setText(0, tr("Cities"));
           QTreeWidgetItem *osloItem = new QTreeWidgetItem(cities);
           osloItem->setText(0, tr("Oslo"));
           osloItem->setText(1, tr("Yes"));

      1、enum QTreeWidgetItem::ChildIndicatorPolicy

      • ShowIndicator:即使没有子项,也会为此项显示展开和折叠的控件。
      • DontShowIndicator:即使有子项也永远不会显示展开和折叠的控件。 
      • DontShowIndicatorWhenChildless:如果项目包含子项,将显示用于展开和折叠的控件。

      2、enum QTreeWidgetItem::ItemType:此枚举描述了用于描述树小部件项的类型。

      • Type:树小部件项目的默认类型。
      • UserType:自定义类型的最小值。低于 UserType 的值由 Qt 保留。

      可以在 QTreeWidgetItem 子类中定义新的用户类型。

      1、void addChild(QTreeWidgetItem *child)

            void addChildren(const QList<QTreeWidgetItem *> &children)

      添加子项。

      2、QTreeWidgetItem * child(int index)

      返回项的子项列表中index处的项。

      3、int childCount()

      子项数目。

      4、QTreeWidgetItem * clone()

      创建项目及其子项的深拷贝。

      5、int columnCount()

      返回项目中的列数。

      6、int indexOfChild(QTreeWidgetItem *child)

      返回项的子项列表中给定子项的索引。

      7、void insertChild(int index, QTreeWidgetItem *child)

           void insertChildren(int index, const QList<QTreeWidgetItem *> &children)

      在子项列表中的索引处插入子项。如果child已经插入其他地方,则不会再次插入。

      8、void removeChild(QTreeWidgetItem *child)

      移除 child 指示的给定项目。移除的项目不会被删除。

      9、void sortChildren(int column, Qt::SortOrder order)

      根据给定列中的值,使用给定顺序对项目的子项进行排序。

      注意:如果项目不与 QTreeWidget 关联,则此函数不执行任何操作。

      10、QTreeWidgetItem * takeChild(int index)

      移除索引处的项目并返回。

      11、QList<QTreeWidgetItem *> takeChildren()

      移除子项列表并返回它。



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿