Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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_Qtreewidget - Fatal编程技术网

C++ 如何在QTreeWidget中选择项目?

C++ 如何在QTreeWidget中选择项目?,c++,qt,qtreewidget,C++,Qt,Qtreewidget,我正在尝试创建一个功能,如果未选择任何项目,该功能将选择QTreeView中的最后一个项目。我不知道如何在程序中选择项目。到目前为止,我已经试过了,但不起作用 if (selectedItemList.length() == 0) // no items selected { QItemSelectionModel *selection = new QItemSelectionModel(treeWidget->model()); QModelInd

我正在尝试创建一个功能,如果未选择任何项目,该功能将选择
QTreeView
中的最后一个项目。我不知道如何在程序中选择项目。到目前为止,我已经试过了,但不起作用

if (selectedItemList.length() == 0) // no items selected
    {
        QItemSelectionModel *selection = new QItemSelectionModel(treeWidget->model());
        QModelIndex index = treeWidget->model()->index(treeWidget->model()->rowCount() - 1,
                                                       0, QModelIndex());
        selection->select(index, QItemSelectionModel::Select);
        treeWidget->setSelectionModel(selection);
        return;
    }

treeWidget
是一个
QTreeWidget
对象,
selectedItemList
是其中所选项目的列表。非常感谢您的帮助。

您可以直接使用这些项目与所选内容交互

if (treeWidget->selectedItems().size() == 0 && treeWidget->topLevelItemCount())
{
    treeWidget->topLevelItem(treeWidget->topLevelItemCount() - 1)->setSelected(true);
}
QList<QTreeWidgetItem*> selectedItemList = tree->selectedItems();
if (selectedItemList.length() == 0) // no items selected
{
    tree->topLevelItem(tree->topLevelItemCount()-1)->setSelected(true);
}
QList selectedItemList=tree->selectedItems();
if(selectedItemList.length()=0)//未选择任何项目
{
tree->topLevelItem(tree->topLevelItemCount()-1)->setSelected(true);
}

选择了
setItemSelected
方法,因此不鼓励使用该方法。可直接使用项目进行选择。未使用此选项选择项目。我认为QTreeView的工作原理是这样的,即在某个项目上的焦点丢失后,默认情况下树中的最后一个项目处于焦点状态,但不能确定它是否处于可见状态。