QTreeWidget实现默认选中上次选中的项目

void TaskListForm::ReloadTree()
{
//获取当前选中的项目名称
QString strSel;
QTreeWidgetItem *itemSel = ui->treeWidget->currentItem();
if ( NULL != itemSel )
{
strSel = itemSel->text(0);
itemSel = NULL;
}

//重新加载树形控件项目,并获取选中项目
ui->treeWidget->clear();
QStringList itemName = {“A”,“B”,“C”};
QList<QTreeWidgetItem*> itemTop;
for (int i=0; i<itemName.size(); i++)
{
    QTreeWidgetItem* itemAdd = new QTreeWidgetItem();
    itemAdd->setText(0, itemName.at(i));
    itemTop.append(itemAdd);

    if ( strSel == itemName.at(i) )
    {
        itemSel = itemAdd;
        ITask.SetCurTask( itemName.at(i) );
    }
}
ui->treeWidget->addTopLevelItems(itemTop);

//新列表中选中上次选中的项目
if ( NULL != itemSel )
{
    ui->treeWidget->setCurrentItem( itemSel );
    emit ITask.SigCurrentTaskChanged();
}

}

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要设置QTreeWidgetItem的选中状态,可以使用setSelected()方法。例如,以下代码将一个QTreeWidgetItem设置为选中状态: ``` QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(, "Item 1"); item->setSelected(true); ``` 这将创建一个名为“Item 1”的QTreeWidgetItem,并将其设置为选中状态。要取消选中状态,可以将setSelected()方法的参数设置为false。 ### 回答2: QtQTreeView是一个用于显示嵌套项目的小部件。QTreeWidgetItem是QTreeView的一个类,它允许用户将项目添加到树形视图中并选择它们。 为了设置QTreeWidgetItem的选择状态,可以使用setSelected()函数和isSelected()函数。setSelected()函数将项目设置为选中状态,而isSelected()函数检查项目是否已经选中。 以下是一个示例程序,演示如何设置QTreeWidgetItem的选择状态: ```cpp QTreeWidget* treeWidget = new QTreeWidget(); QTreeWidgetItem* item = new QTreeWidgetItem(); // 设置项目的文本和父项目 item->setText(0, "项目"); item->setParent(topLevelItem); // 选择该项目 item->setSelected(true); ``` 在上面的示例中,我们创建了一个QTreeWidgetItem对象,并使用setText()函数为其设置文本。然后,我们将该项目设置为选择状态。 此外,可以使用setSelected()函数和isSelected()函数设置和检查QTreeWidgetItem的选择状态。例如,可以使用以下代码进行操作: ```cpp QTreeWidgetItem* item = treeWidget->currentItem(); // 如果当前项目未选择,则将其选择 if (!item->isSelected()) { item->setSelected(true); } ``` 在上面的示例中,我们获取了当前项目,并检查它是否已经选择。如果当前项目未选择,则将其选择。 总之,使用QTreeWidgetItem对象的setSelected()函数和isSelected()函数非常容易设置和检查其选择状态。这些函数使得在QTreeView中选择项目变得非常简单和容易。 ### 回答3: QTQTreeWidget控件是基于树形结构的,用于显示委托(items)和委托的子代。当用户从列表中选择一个委托时,我们通常需要知道哪些委托已经被选中并且从中获取相应的信息。 枚举选中项 首先我们需要知道如何遍历QTreeWidget控件中的所有已选中委托以及如何获取这些委托的列信息。我们可以使用selectedItems()函数,遍历所有已选中QTreeWidgetItem。代码如下: ```cpp QList<QTreeWidgetItem*> items = m_widget->selectedItems(); foreach(QTreeWidgetItem* item, items) { QString text = item->text(0); // 获取委托第一列的信息 qDebug() << "Selected item:" << text; } ``` 代码中我们在选中项列表中遍历项,并使用text()函数获取委托列信息。我们也可以使用后代遍历来遍历所有委托,而不仅仅是已选中的。 设置选中项 我们经常需要设置QTreeWidgetItem为选中状态,以显示为用户当前选中项。可以使用setSelected()函数实现这个目的。下面是如何将一个QTreeWidgetItem设置为选中状态的示例代码: ```cpp QTreeWidgetItem* item = m_widget->topLevelItem(0); // 获取根委托 if(item) { item->setSelected(true); // 设置选中状态 } ``` 我们先获取QTreeWidget的顶级委托根节点,然后通过setSelected()函数将其设置为选中状态。 总结 QTreeWidgetItem是QT控件用于显示树形结构的基础组件之一,可以用于在QT应用程序中实现许多复杂的数据结构。为了知道树形控件中哪些项已经被选中以及如何获取选中项的信息,我们可以使用selectedItems()函数遍历已选中QTreeWidgetItem。而要将一个QTreeWidgetItem设置为选中状态,只需调用setSelected()函数即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

atuexe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值