【问题标题】:How to get clicked/selected items of a QTreeWidget如何获取 QTreeWidget 的单击/选定项目
【发布时间】:2014-11-21 08:40:44
【问题描述】:

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

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

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

我找到了

this->MyTree->selectedItems();

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

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

【问题讨论】:

  • 不确定您所说的“存储反馈”是什么意思。您现在已经在 QList 中选择了项目,这就是您的问题的答案。
  • 反馈是什么意思?? selectedItems() 返回 QTreeWidgetItems 列表,您可以通过它访问其内容并提取数据。
  • 如果我点击“filename.txt”,我希望能够将这个字符串放在一个变量中,以便以后重复使用

标签: c++ qt


【解决方案1】:

来自 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
}

【讨论】:

    【解决方案2】:
    {
        ...
        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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-15
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 2020-08-13
      • 1970-01-01
      相关资源
      最近更新 更多