我有一个声明为:
的函数bool getIndex(const QString itemUid, QModelIndex& index /*out*/);
如何声明一个对象作为索引传入?
我试过了:
QModelIndex *modelIndex;
getIndex(auid, modelIndex );
有和没有“*”,但我得到编译错误。
编译错误是:
没有匹配函数来调用TreeModel :: getIndex(QString,QModelIndex *&)
答案 0 :(得分:1)
编译没有*不应该给你错误(假设你没有做QModelIndex *modelIndex();
之类的事情。)
解决问题的另一种方法是声明你的函数:
bool getIndex(const QString itemUid, QModelIndex* index /*out*/);
然后像以前一样创建对象作为参考:
QModelIndex *modelIndex;
getIndex(auid, modelIndex);
这方面的缺点是你必须在使用index
的任何地方更改函数,而不是将其视为指针而不是引用。
我发现您的错误更可能出现在代码的其他位置,并且是QModelIndex
对象的性质。
答案 1 :(得分:-3)
请求的参数为QModelIndex&
,因此您只需拨打
QModelIndex modelIndex();
getIndex(auid, modelIndex);
Btw:QModelIndex是一个非常苗条的对象,很快就会失效。如果没有深入了解Qt的模型/视图系统,就不应该创建指针。