Aug. 26, 2019, 4:26 a.m.

QList<QTimer> послать в qml вместо QList<QObject>

Всем привет.
Пытаюсь послать из крестовой части лист QList но прилетает туда это как обьект.
Но если я конвертну лист этих таймеров в лист QObject но на стороне qml нормально прилетают эти таймеры.
А теперь вопрос, как можно без конвертации послать лист QTimer чтоыб qml это правильно увидит?
То есть конвертация не вариант вообще.
Заранее спасибо.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
1

Привет.

Нужно регистрировать мета тип, например так.

message.h

#ifndef MESSAGE_H
#define MESSAGE_H

#include <QMetaType>
#include <QStringList>


class Message
{
public:
    Message();
    Message(const Message &other);
    ~Message();

    Message(const QString &body, const QStringList &headers);

    QString body() const;
    QStringList headers() const;

private:
    QString m_body;
    QStringList m_headers;
};

Q_DECLARE_METATYPE(Message);

#endif // MESSAGE_H

message.cpp

#include "message.h"

Message::Message()
{
}

Message::Message(const Message &other) :
    m_body(other.m_body),
    m_headers(other.m_headers)
{
}

Message::~Message()
{
}

Message::Message(const QString &body, const QStringList &headers) :
    m_body(body),
    m_headers(headers)
{

}

QString Message::body() const
{
    return m_body;
}

QStringList Message::headers() const
{
    return m_headers;
}

main.cpp

#include <QCoreApplication>

#include "message.h"
#include <QVariant>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Message message("Body", {"Header"});
    QVariant varMessage = QVariant::fromValue(message);

    if (varMessage.canConvert<Message>())
    {
        Message fromVar = varMessage.value<Message>();
        qDebug() << fromVar.body();
    }

    return a.exec();
}

Но для QML возможно нужно будет использовать qmlRegisterType ещё, чтобы его QML понимал

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

VL
Jan. 20, 2020, 12:42 p.m.
Vova Lebedev

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:60points,
  • Rating points-1
VL
Jan. 20, 2020, 12:33 p.m.
Vova Lebedev

C++ - Test 001. The first program and data types

  • Result:80points,
  • Rating points4
AP
Jan. 20, 2020, 5:48 a.m.
Anastassiya Polyakova

C++ - Тест 003. Условия и циклы

  • Result:57points,
  • Rating points-2
Last comments
Jan. 21, 2020, 2:12 p.m.
Docent

Полезная статья. Как всегда - то что надо. Добавлю ещё маленькую полезность - после установки tracer (88 строка) и перед выводом значений в lineEdit (91 строка) стоит добавить updatePositio…
Jan. 17, 2020, 2:31 a.m.
Andrej Jankovich

Выглядит как ошибка библиотеки. Расскажите подробно на какой платформе вы собираете проект (MinGW или MSVC) их версии и версии Qt.
D
Jan. 16, 2020, 12:06 p.m.
DENIZ1819

Доброго времени суток, не подскажите, что делать в данной ситуации, после того, как я сделал все вышеуказанные инструкции для подключения библиотеки к проекту?
Jan. 14, 2020, 5:33 a.m.
Evgenij Legotskoj

Рекомендую Wt, достаточно мощная вещь. Этот фреймворк может использоваться для написания сайтов на C++, либо можно использовать только отдельный компоненты, например только ORM. Но я не знаю, ка…
a
Jan. 14, 2020, 5:29 a.m.
ayb

Спасибо за инфу. Поиск качественной ORM привел меня только к sqlite_orm, но не подходит из-за необходимости полноценной поддержки c++14. Про framework Wt не слышал, спасибо за наводку.
Now discuss on the forum
Jan. 22, 2020, 6:06 a.m.
Pavel.K

Можете попробовать через Loader сделать, те cделать свой компонент ректангл с нужными вам полями и через Loader вызывать этот компонент , а через Connections прописать что ваш компонент отрисова…
Jan. 22, 2020, 4:25 a.m.
Pavel.K

Привет, кто-нибудь делал тестовый Json сервер , чтобы не просто через сокет ByteArray пересылать, а с клиента обрабатывать Post и get запросы? Буду очень признателен если у кого то есть пр…
Jan. 20, 2020, 5:06 p.m.
Aleksej Vnukov

возможно,но все что я увидел по этому поводу - так это работать с этим адресом, но старые решения на данный момент не работают
Jan. 20, 2020, 1:49 p.m.
Evgenij Legotskoj

Добрый день, Касательно удаления строк. Любой QTableView класс, или наследованый от него имеет метод selectionModel() , который возвращает QItemSelectionModel . А эта…
Jan. 20, 2020, 1:35 p.m.
Evgenij Legotskoj

Добрый день. В Qt по сути используется MV шаблон проектирования. Поскольку контроллер и представление объединены в представлении. Так что да, вы понимаете правильно суть Qt. Насчёт тормозов…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB