在自定义项模型中,我希望调用某些给定角色更改的数据。
对于initializer-list中的两个项,它编译得很好:
emit dataChanged(index, index, QVector<int>{ Qt::CheckStateRole, Qt::DisplayRole });但是,当我将第三项添加到列表中时,它将失败:
emit dataChanged(index, index, QVector<int> { Qt::CheckStateRole, Qt::DisplayRole, Qt::DecorationRole });
error C2440: '<function-style-cast>' : cannot convert from 'initializer-list' to 'QVector<int>'
2> No constructor could take the source type, or constructor overload resolution was ambiguous不管角色是什么,任何两个角色都会编译,而第三个角色则不会。我使用的是MSVC2013和QT5.4.1。我在这里做错什么了吗?
发布于 2015-09-14 19:28:18
如果您还没有,我会将您的VS2013更新为更新5,特别是在更新4中,它们已经修复了初始化程序列表中的一些问题。还可以看到这个QTBUG-39142
您的编译器似乎试图使用普通的构造函数来构造QVector对象。还可以验证是否启用了C++11并定义了Q_COMPILER_INITIALIZER_LISTS。
https://stackoverflow.com/questions/32572186
复制相似问题