Qt 5.1 - 无法编译示例抽象项模型:"conflicting return type specified"



>我正在尝试编译上面的例子,但它没有编译(Windows,Mingw 4.8)。错误是:

In file included from ..abstractitemmodelmain.cpp:40:0: ..abstractitemmodelmodel.h:77:27: error: conflicting return type specified for 'virtual QHash<int, QByteArray> AnimalModel::roleNames() const'
 QHash<int,QByteArray> roleNames() const;
                       ^
In file included from ........includeQtCore/QAbstractListModel:1:0,
             from ..abstractitemmodelmodel.h:40,
             from ..abstractitemmodelmain.cpp:40:
........includeQtCore/qabstractitemmodel.h:234:43: error:   overriding 'virtual const QHash<int, QByteArray>& QAbstractItemModel::roleNames() const'
 virtual const QHash<int,QByteArray> & roleNames() const;

显然,QAbstractListModel 中的原型期望返回引用而不是对象。我不知道如何更改代码,以便它实际工作。

如果我将 QHash 成员添加到动物模型,在构造函数中初始化它,然后返回对它的引用,程序崩溃。

roleNames的返回类型从 Qt4 中的 const QHash<int,QByteArray> & 更改为 Qt5 中的QHash<int,QByteArray>。因此,看起来您正在尝试针对 Qt4 编译 Qt5 示例。

相关内容

  • 没有找到相关文章

最新更新