我很难理解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,如果这是相关的。
答案 0 :(得分:0)
发现问题。显然你不能拥有同名的插槽和信号 - 即使它们的功能签名截然不同。它不会产生编译错误,只会崩溃。
更改信号名称后,它神奇地开始工作。