Qt模型视图框架:QTreeWidget

一、描述

QTreeWidget 类是一个便利类,它提供了一个标准的树形小部件。

在最简单的形式中,可以通过以下方式构建树小部件:

 QTreeWidget *treeWidget = new QTreeWidget();
 treeWidget->setColumnCount(1);
 QList<QTreeWidgetItem *> items;
 for (int i = 0; i < 10; ++i)
     items.append(new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr), QStringList(QString("item: %1").arg(i))));
 treeWidget->insertTopLevelItems(0, items);

在将项目添加到树小部件之前,必须使用 setColumnCount() 设置列数。


二、属性成员

1、columnCount : int

在树小部件中显示的列数。

2、topLevelItemCount : const int

顶级项目的数量。默认值为 0。


三、成员函数

3.1、信号

1、void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)

当前项目改变时发出这个信号。 当前项由 current 指定,这将替换上一项previous。

2、void itemActivated(QTreeWidgetItem *item, int column)

当用户通过单击或双击或按下特殊键(例如 Enter)激活项目时,会发出此信号。

column是被点击的项目的列。

3、void itemChanged(QTreeWidgetItem *item, int column)

当指定项中列的内容发生更改时,会发出此信号。

4、void itemClicked(QTreeWidgetItem *item, int column)

当用户在小部件内部单击时会发出此信号。

5、void itemCollapsed(QTreeWidgetItem *item)

当指定的项目折叠时发出此信号。

注意:调用 collapseAll() 时项目更改其状态,不会发出此信号。

6、void itemDoubleClicked(QTreeWidgetItem *item, int column)

当用户在小部件内双击时会发出此信号。column是被单击的项目的列。

7、void itemEntered(QTreeWidgetItem *item, int column)

当鼠标光标进入指定列上的项目时,会发出此信号。需要启用鼠标跟踪才能使用此功能。

8、void itemExpanded(QTreeWidgetItem *item)

当指定的项目被展开以显示其所有子项时,会发出此信号。

注意:调用 expandAll() 时项目更改其状态,不会发出此信号。

9、void itemPressed(QTreeWidgetItem *item, int column)

当用户在小部件内按下鼠标按钮时会发出此信号。column是被点击的项目的列。

10、void itemSelectionChanged()

当树小部件中的选择发生变化时,会发出此信号。

3.2、函数

1、void clear()

通过删除其所有项目和选择来清除树小部件。

2、void collapseItem(const QTreeWidgetItem *item)

关闭项目。这会导致包含项目子项的树被折叠。

3、void expandItem(const QTreeWidgetItem *item)

展开项目。 这会导致包含项目子项的树被展开。

4、void scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

确保该项目可见,必要时使用指定的 hint 滚动视图。

5、void addTopLevelItem(QTreeWidgetItem *item)

     void addTopLevelItems(const QList<QTreeWidgetItem *> &items)

将项目作为小部件中的顶级项目追加。

6、QList<QTreeWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags, int column = 0)

在给定的列中使用给定的标志返回与给定文本匹配的项目列表。

7、QModelIndex indexFromItem(const QTreeWidgetItem *item, int column = 0)

返回与给定列中的给定项关联的 QModelIndex。

8、QTreeWidgetItem * itemFromIndex(const QModelIndex &index)

返回指向与给定索引关联的 QTreeWidgetItem 的指针。

9、int indexOfTopLevelItem(QTreeWidgetItem *item)

返回给定顶级项目的索引,如果找不到该项目,则返回 -1。

10、void insertTopLevelItem(int index, QTreeWidgetItem *item)

        void insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)

在视图的顶级索引处插入项目。如果该项目已插入其他地方,则不会插入。

11、QTreeWidgetItem * invisibleRootItem()

返回树小部件的不可见根项目。

不可见的根项通过QTreeWidgetItem API 提供了对树widget 的顶级项的访问,使得可以编写统一处理顶级项及其子项的功能(例如递归处理)。

12、QTreeWidgetItem * itemAt(const QPoint &p)

返回指向坐标 p 处的项目的指针。坐标相对于树小部件的 viewport()。

13、QWidget * itemWidget(QTreeWidgetItem *item, int column)  

        void setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)

        void removeItemWidget(QTreeWidgetItem *item, int column)

item中的小部件。小部件的 autoFillBackground 属性必须设置为 true,否则小部件的背景将是透明的,同时显示模型数据和树小部件项目。

此功能仅应用于在树小部件项目的位置显示静态内容。 如果要显示自定义动态内容或实现自定义编辑器小部件,请改用 QTreeView 和子类 QStyledItemDelegate。

注意:QTreeWidge拥有小部件的所有权。

14、void sortItems(int column, Qt::SortOrder order)

按给定列中的值按指定顺序对小部件中的项目进行排序。

15、QTreeWidgetItem * takeTopLevelItem(int index)

删除给定索引处的顶级项目并返回它。

16、QTreeWidgetItem * topLevelItem(int index)

返回给定索引处的顶级项目。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值