Qml - c++ 信号参数“未定义";在 qml [英] Qml - c++ signal parameters "undefined" in qml

查看:26
本文介绍了Qml - c++ 信号参数“未定义";在 qml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到来自工作线程的信号并通过 C++ Singleton (CTaskManager) 将其重新发送到 qml.

I receive a signal from a worker thread and re-emit it via C++ Singleton (CTaskManager) to qml.

void CTaskManager::runAsync(CTask* task)
{
    Q_CHECK_PTR(task);

    QThread* thread  = new QThread();

    task->moveToThread(thread);

    connect(this    , SIGNAL(canceled())                                        , task  , SLOT(cancel())                                            , Qt::DirectConnection);
    connect(task    , SIGNAL(progressChanged(float))                            , this  , SLOT(setProgress(float))                                  , Qt::DirectConnection);
    connect(task    , SIGNAL(finished(bool,unsigned int, const QVariantMap&))   , this  , SLOT(setFinished(bool,unsigned int, const QVariantMap&))  , Qt::DirectConnection);

    connect(thread  , SIGNAL(started())                                         , task  , SLOT(run()));

    connect(task    , SIGNAL(finished(bool,unsigned int, const QVariantMap&))   , thread, SLOT(quit()));

    connect(thread  , SIGNAL(finished())                                        , task  , SLOT(deleteLater()));
    connect(thread  , SIGNAL(finished())                                        , thread, SLOT(deleteLater()));

    thread->start();
}

void CTaskManager::setFinished(bool canceled, unsigned int error, const QVariantMap& args)
{
    emit this->finished(canceled, error, args);
}

这适用于 LINUX 下的 Qt Creator 4.6.1.当我在 Windows 下运行相同的项目时,我的 qml 信号连接中只得到未定义的参数.

This works fine with Qt Creator 4.6.1 under LINUX. When i run the same Project under Windows i get only undefined parameters in my qml signal connection.

Connections
{
    target: TaskManager
    onFinished:
    {
    }
}

有什么想法吗?

推荐答案

这似乎是 Qt 5.11 中已知的错误.

It seems like a bug in Qt 5.11 which is already known.

这篇关于Qml - c++ 信号参数“未定义";在 qml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆