Я работаю над приложением на основе 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»
Я что-то упускаю. Пожалуйста, помогите