Qt中void QTreeView::expand(const QModelIndex &index)基本用法总结(展开二级节点)(expandAll展开所有节点)

本文主要总结Qt中函数void QTreeView::expand(const QModelIndex &index)基本用法,用该函数可以展开指定树形节点。如果要展开所有节点,可以用void QTreeView::expandAll()函数。

1.1关键函数讲解

QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;

该函数第一个和第二个参数是树形控件的索引项,第三个参数是表示上一级节点的索引项。如果只想展开一级节点,则不用填写第三个参数选择默认的;如果想要连续展开一级节点和二级节点,则需要用到第三个参数,用法为第三个参数挂载上一级节点的索引作为父节点。

1.2下面是具体用法代码示例

/*设置树模型*/
    treeView = new QTreeView();
    treeView->setModel(item);
    treeView->header()->hide();
    treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
    treeView->expand(item->index(0,0));
    treeView->expand(item->index(0,0,item->index(0,0)));
其中QStandardItemModel *item = new QStandardItemModel();需要自己挂载模型item的内容项。

 

 

参考内容:

https://doc.qt.io/archives/4.6/qtreeview.html#expand(参考:Qt官方文档)

Qt,可以通过使用QTreeView和QStandardItemModel来实现树形图。要实现在展开另一个节点时收缩上一个节点,可以通过连接QTreeView的collapsed()和expanded()信号来实现。具体步骤如下: 1. 创建QTreeView和QStandardItemModel对象。 ``` QTreeView *treeView = new QTreeView(this); QStandardItemModel *model = new QStandardItemModel(this); ``` 2. 设置QTreeView的模型。 ``` treeView->setModel(model); ``` 3. 添加树形图节点。 ``` QStandardItem *rootItem = model->invisibleRootItem(); QStandardItem *item1 = new QStandardItem("Item 1"); rootItem->appendRow(item1); QStandardItem *item2 = new QStandardItem("Item 2"); rootItem->appendRow(item2); ``` 4. 连接QTreeView的collapsed()和expanded()信号。 ``` connect(treeView, SIGNAL(collapsed(const QModelIndex &)), this, SLOT(onCollapsed(const QModelIndex &))); connect(treeView, SIGNAL(expanded(const QModelIndex &)), this, SLOT(onExpanded(const QModelIndex &))); ``` 5. 在槽函数实现节点展开和收缩。 ``` void MainWindow::onCollapsed(const QModelIndex &index) { QTreeView *treeView = qobject_cast<QTreeView *>(sender()); if (treeView) { QModelIndex parentIndex = index.parent(); if (parentIndex.isValid()) { treeView->collapse(parentIndex); } } } void MainWindow::onExpanded(const QModelIndex &index) { QTreeView *treeView = qobject_cast<QTreeView *>(sender()); if (treeView) { QModelIndex parentIndex = index.parent(); if (parentIndex.isValid()) { treeView->collapse(parentIndex); } } } ``` 在这个示例,当节点展开时,会将其上一个节点收缩。这里使用了collapse()函数来实现节点的收缩。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值