是否有任何方法为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);我需要为一个行分配一个唯一的键,这样我就可以检查该键的模型,并且模型将返回行号。任何建议。
发布于 2013-07-12 08:37:53
您可以使用setData函数QStandardItem,以便为用户定义的角色设置自定义键,例如
#define MyRole Qt::UserRole + 2
myItem->setData(Qvariant(key), MyRole)您可以使用data调用获取模型中任何索引的数据。
QVariant d = mymodel->data(anindex, MyRole)编写一个检查键是否存在的函数应该是直接的。
发布于 2018-04-20 19:03:30
pnezis的答案是存储密钥,而不是从模型访问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 ;https://stackoverflow.com/questions/17610551
复制相似问题