У меня есть следующий код:
QString* data = new QString("data to QML");
engine.rootContext()->setContextProperty(QStringLiteral("consoleText"), QVariant::fromValue(data));
а этот не работает, сообщение об ошибке в QTCreator следующее:
...\qglobal.h:693: ошибка: статическое утверждение не удалось: тип не зарегистрирован, используйте макрос Q_DECLARE_METATYPE, чтобы сделать его известным системе метаобъектов Qt #define Q_STATIC_ASSERT_X(условие, сообщение) static_assert(bool(условие) , Сообщение)
Я не думаю, что мне следует использовать Q_DECLARE_METATYPE
вместо QString
, потому что если я сделаю что-то вроде этого:
engine.rootContext()->setContextProperty(QStringLiteral("consoleText"), QVariant::fromValue(QString("data to QML")));
это работает нормально.
Меня интересует, как я могу использовать QVariant::fromValue()
с предварительно объявленным QString.
QString
в куче, это совершенно бессмысленно. - person dtech   schedule 15.12.2015