【发布时间】:2013-07-22 17:25:12
【问题描述】:
我发出信号,然后在 QML 中捕获;但是,当我尝试读取附加到信号的参数时,我得到“未定义”。以下是一些代码sn-ps。提前感谢您的帮助!
我的模型.h
class MyModel : public QObject
{
Q_OBJECT
...
signals:
void mySignal(float a, some::enum b)
...
}
我的模型.cpp
做一些事情来发出信号(这不是问题,只需emit mySignal(1.0, 2.0);)
someotherclass.cpp
void SomeOtherClass::setupQML() { ...
QQuickView *view = new QQuickView();
QWidget *container = QWidget::createWindowContainer(view);
...
QmlRootData = new RootData();
view->rootContext()->setContextObject(QmlRootData);
view->rootContext()->setContextProperty("MyModel", model);
view->setSource(QUrl("main.qml"));
view->setResizeMode(QQuickView::SizeRootObjectToView);
QObject* rootObj = view->rootObject();
...
}
main.qml
Rectangle {
Connections {
target: MyModel
onMySignal: console.log(a)
}
}
上面的console.log(a) 在预期的时候被调用;但是,我希望输出为“1.0”,但它只是说“未定义”,我不知道为什么。我正在使用 Qt 5.1 和 Qt Quick 2.0。
【问题讨论】: