【发布时间】:2017-12-14 12:59:22
【问题描述】:
我很难理解 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();
};
我可以成功地从 QML 调用“service.method”,但是如果我添加一个连接部分来监听登录事件,每当显示该组件时我都会收到一个段错误。
Page {
Component {
Column {
...
Connections {
target: service
onLogin: {
console.login("TEST");
}
}
}
}
}
我尝试将“连接”部分移出列,但这会导致运行时错误和白页,因为它无法解析 QML。我在这里错过了什么?
如果有任何相关性,我正在使用 QT Creator 4.2.1。
【问题讨论】:
-
服务是否可能存在于另一个线程中?
-
没有。整个应用程序都是单线程的。
-
什么是
console.login?你的意思是console.log()?而且我不认为将Connections放在Component中是一个好主意。