C++ 通过搜索或键通过QStandardItemModel检索QStandardItem
是否有任何方法可以为C++ 通过搜索或键通过QStandardItemModel检索QStandardItem,c++,qt,qstandarditemmodel,C++,Qt,Qstandarditemmodel,是否有任何方法可以为QStandardItemModel中的条目分配唯一的密钥,以便我们可以检查该密钥是否存在。如果存在,我们将获得相关的QstandardItem 更新: 这就是我要做的。我的表中有3列,所以我有3个QStandardItem。 这是我正在使用的代码: QStandardItem* item0 = new QStandardItem("Column1"); QStandardItem* item1 = new QStandardItem("Column2"); QStandar
QStandardItemModel
中的条目分配唯一的密钥,以便我们可以检查该密钥是否存在。如果存在,我们将获得相关的QstandardItem
更新:
这就是我要做的。我的表中有3列,所以我有3个QStandardItem
。
这是我正在使用的代码:
QStandardItem* item0 = new QStandardItem("Column1");
QStandardItem* item1 = new QStandardItem("Column2");
QStandardItem* item2 = new QStandardItem("Column3");
现在,我的模型被称为model
,我将这些模型附加到我的模型上
moddel->setItem(0,0,item0);
moddel->setItem(0,1,item1);
moddel->setItem(0,2,item2);
我需要为一行分配一些唯一的键,这样我就可以检查模型中的该键,并且模型将返回行号。任何建议。您可以使用QStandardItem
的功能为用户定义的角色设置自定义键,例如
#define MyRole Qt::UserRole + 2
myItem->setData(Qvariant(key), MyRole)
您可以使用调用来获取模型中任何索引的数据
编写检查密钥是否存在的函数应该是直截了当的。pnezis的回答解决了密钥的存储问题,而不是从模型中访问
QStandardItem
。我通过对QStandardItem
进行子分类,解决了使用QStandardItem
存储数据的问题,因为我需要存储大量复杂数据
要从模型中获取QStandardItem
,需要创建一个带有行/列的QModelIndex
实例,然后调用itemFromIndex(index)
在模型上
我的示例取自一个选择回调
QModelIndex& selectedItem = itemsSelected.front();
QStandardItemModel* model = reinterpret_cast<QStandardItemModel*>(tableView->model());
if (nullptr == model)
return;
QStandardItem *item = model->itemFromIndex(selectedItem);
if (nullptr == item)
return ;
QModelIndex&selectedItem=itemsSelected.front();
QStandardItemModel*model=reinterpret_cast(tableView->model());
if(nullptr==模型)
返回;
QStandardItem*item=model->itemFromIndex(selectedItem);
if(nullptr==项)
返回;
QModelIndex& selectedItem = itemsSelected.front();
QStandardItemModel* model = reinterpret_cast<QStandardItemModel*>(tableView->model());
if (nullptr == model)
return;
QStandardItem *item = model->itemFromIndex(selectedItem);
if (nullptr == item)
return ;