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()
移除子项列表并返回它。
QTreeWidgetItemIterator
一、描述
QTreeWidgetItem迭代器。迭代器将按照先序遍历顺序遍历项目,从而在继续访问子节点之前访问父节点。
例如,以下代码示例了树中的每个项目:
QTreeWidgetItemIterator it(treeWidget);
while (*it)
{
if ((*it)->text(0) == itemText)
(*it)->setSelected(true);
++it;
}
还可以通过将某些标志传递给 QTreeWidgetItemIterator 的构造函数来过滤掉某些类型的节点。
二、类型成员
1、enum QTreeWidgetItemIterator::IteratorFlag:这些标志可以传递给 QTreeWidgetItemIterator 构造函数(如果使用多个,则将它们组合在一起),这样迭代器将只迭代与给定标志匹配的项目。
- All
- Hidden
- NotHidden
- Selected
- Unselected
- Selectable
- NotSelectable
- DragEnabled
- DragDisabled
- DropEnabled
- DropDisabled
- HasChildren
- NoChildren
- Checked
- NotChecked
- Enabled
- Disabled
- Editable
- NotEditable
- UserFlag