如何获取QTreeWidget的点击/选定项目

时间:2014-11-21 08:40:44

标签: c++ qt

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

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

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

我找到了

this->MyTree->selectedItems();

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

有关如何存储selectedItems list

的任何示例

2 个答案:

答案 0 :(得分:3)

来自Qt文档:QTreeWidget Class ReferenceQTreeWidgetItem Class Reference

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
}

答案 1 :(得分:0)

{
    ...
    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);
    }
}