1

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

In file included from ..\abstractitemmodel\main.cpp:40:0: ..\abstractitemmodel\model.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 ..\..\..\..\include\QtCore/QAbstractListModel:1:0,
             from ..\abstractitemmodel\model.h:40,
             from ..\abstractitemmodel\main.cpp:40:
..\..\..\..\include\QtCore/qabstractitemmodel.h:234:43: error:   overriding 'virtual const QHash<int, QByteArray>& QAbstractItemModel::roleNames() const'
 virtual const QHash<int,QByteArray> & roleNames() const;

显然,QAbstractListModel 中的原型需要一个引用而不是对象。我不知道如何更改代码,因此它实际上可以工作。

如果我向 AnimalModel 添加一个 QHash 成员,在构造函数中对其进行初始化,然后返回对它的引用,程序就会崩溃。

4

1 回答 1

1

的返回类型roleNamesconst QHash<int,QByteArray> &Qt4更改为QHash<int,QByteArray>Qt5。因此,您似乎正在尝试针对 Qt4 编译 Qt5 示例。

于 2013-10-01T20:07:14.023 回答