QML Connections在segfault中处理来自服务结果的事件

时间:2017-12-13 19:49:58

标签: qt qml

我很难理解qt的非标准C ++世界。我有一个可以发出登录信息的课程。信号,我想从QML听,这只是段错误。

class Service : public QObject
Q_OBJECT
{
public:
    Service()
    {
        // get the context, snipped for brevity
        rootContext->setContextProperty("service", this);
    }
public signals:
    void login(bool succcess);
public slots:
     void method();
};

我可以成功拨打' service.method'从QML开始,但是如果我添加一个Connections部分来监听登录事件,那么只要显示该组件,我就会得到一个段错误。

Page {
    Component {
        Column {
             ...
            Connections {
                target: service
                onLogin: {
                    console.login("TEST");
                }
            }
        }
    }
}

我试过移动'连接'列中的部分,但这会导致运行时错误和白页,因为它无法解析QML。我在这里缺少什么?

我正在使用QT Creator 4.2.1,如果这是相关的。

1 个答案:

答案 0 :(得分:0)

发现问题。显然你不能拥有同名的插槽和信号 - 即使它们的功能签名截然不同。它不会产生编译错误,只会崩溃。

更改信号名称后,它神奇地开始工作。