Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取QTreeWidget的单击/选定项_C++_Qt - Fatal编程技术网

C++ 如何获取QTreeWidget的单击/选定项

C++ 如何获取QTreeWidget的单击/选定项,c++,qt,C++,Qt,我目前正在寻找一种方法来获取QTreeWidget的选定项的名称 我已经创建了多个QTreeWidgetItems,以生成一个类似的文件浏览器 我需要知道如何获得选定文件夹的名称 我已经找到了答案 this->MyTree->selectedItems(); 但我无法存储应该是QList格式的反馈 有关如何存储Qt文档中的selectedItems列表的任何示例: selectedItems()是QTreeWidget的一个函数 QList QTreeWidget::selecte

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

我已经创建了多个
QTreeWidgetItems
,以生成一个类似的文件浏览器

我需要知道如何获得选定文件夹的名称

我已经找到了答案

this->MyTree->selectedItems();
但我无法存储应该是
QList
格式的反馈


有关如何存储Qt文档中的
selectedItems列表的任何示例:

selectedItems()
QTreeWidget
的一个函数

QList QTreeWidget::selectedItems()常量

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

text()
QTreeWidgetItem

QString QTreeWidgetItem::text(int列)常量

返回指定列中的文本

定义
QTreeWidgetItem
的列表,以存储
selectedItems()的返回值

对于列表中的每个项目,使用
text()
函数获取其字符串

QList<QTreeWidgetItem *> itemList;
itemList = this->MyTree->selectedItems();
foreach(QTreeWidgetItem *item, itemList)
{
   QString str = item->text();
   //str is what you want
}
QList项目列表;
itemList=this->MyTree->selectedItems();
foreach(QTreeWidgetItem*item,itemList)
{
QString str=item->text();
//这就是你想要的
}

不确定“存储反馈”是什么意思。您现在已经在QList中列出了所选项目,这就是您的问题的答案。您所说的反馈是什么意思??selectedItems()返回QTreeWidgetItems列表,您可以通过该列表访问其内容并提取数据。如果我单击“filename.txt”,我希望能够将此字符串保存在变量中,以便以后可以重复使用
{
    ...
    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);
    }
}