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