我正在开发一个基于 QT 的应用程序。我的一个类是QAbstractTableModel的子类。数据函数的返回类型为QVariant (Union)。但我想返回自定义类型std::vector<QString>
开始了解Q_DECLARE_METATYPE();
它使 QVariant 可以使用新类型。
-测试用例代码-
#include <QApplication>
#include <QMetaType>
#include <vector>
#include<QVariant>
Q_DECLARE_METATYPE(std::vector<QString>);
QVariant data(int role)
{
std::vector<QString> test1;
test1.push_back("Dtd");
test1.push_back("Dtd");
return test1;
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
data(1);
return app.exec();
}
我收到此错误
错误:无法将 'test1' 从 'std::vector< QString >' 转换为 'QVariant'</p>
我错过了一些东西。请帮助