如何获得QTreeWidget的点击/选择项目

How to get clicked/selected items of a QTreeWidget

本文关键字:选择 项目 何获得 QTreeWidget      更新时间:2023-10-16

我目前正在寻找一种方法来获取QTreeWidget所选项目的名称。

我已经创建了多个QTreeWidgetItems来生成类似浏览器的文件。

我需要知道如何获取所选文件夹的名称。

我找到了

this->MyTree->selectedItems();

得到它,但我无法存储应该是QList格式的反馈。

关于如何存储selectedItems list的任何示例?

来自 Qt 文档: QTreeWidget 类参考 , QTreeWidgetItem 类参考

selectedItems()QTreeWidget的函数。

QList QTreeWidget::selectedItems () const

返回所有选定非隐藏项的列表。

text()QTreeWidgetItem的函数

QString QTreeWidgetItem::text ( int column ) const

返回指定列中的文本。

定义一个QTreeWidgetItem列表以存储 selectedItems() 的返回值。
对于列表中的每个项目,请使用text()函数获取其字符串。

QList<QTreeWidgetItem *> itemList;
itemList = this->MyTree->selectedItems();
foreach(QTreeWidgetItem *item, itemList)
{
   QString str = item->text();
   //str is what you want
}
{
    ...
    connect(treeWidget, &QTreeWidget::itemClicked, this, &MyForm::onItemClicked);
    connect(treeWidget, &QTreeWidget::itemActivated, this, &MyForm::onItemClicked);
}
void MyForm::onItemClicked(QTreeWidgetItem *item, int) {
    if (item == item0) {
        stackedWidget->setCurrentWidget(widget0);
    }
    else if (item == item1) {
        stackedWidget->setCurrentWidget(widget1);
    }
}