BB10カスケードAPIからタッチイベントのターゲットに到達しようとして問題が発生しました。コンテナが上下にいくつかあり、それぞれに同じタッチ信号とスロットが割り当てられています。すべてがC++から動的にロードされています。したがって、各タッチイベントをキャッチするには、どのコンテナがイベントをトリガーしたかを知る必要があります。TouchEventのTARGETプロパティを使用する必要があることを読みましたが、機能しておらず、理由がわかりません。だから私は助けを求めています
これが私のコードです:
for (int i = 0; i < 10; i++) {
QmlDocument *qml = QmlDocument::create("asset:///customComponents/TableRow.qml").parent(this);
Container *passivesRow = qml->createRootObject<Container>();
passivesRow->setProperty("labelTextOne", "Hello_" + i);
bool res = QObject::connect(passivesRow,
SIGNAL(touch(bb::cascades::TouchEvent*)), this,
SLOT(handleAccountTouch(bb::cascades::TouchEvent*)));
Q_ASSERT(res);
Q_UNUSED(res);
myCurrentPageContainer->add(passivesScroll);
}
void PosicionConsolidada::handleAccountTouch(bb::cascades::TouchEvent* event) {
if (event->touchType() == TouchType::Up) {
qDebug() << "event catched";
VisualNode *p = event->target();
qDebug() << "object p: " << p->property("labelTextOne"); //Print nothing
}
}
他のすべてはうまく機能しています。私のコンテナのリストは、それぞれのテキストでうまく作成されています。そのうちの1つをクリックすると、イベントが正常にキャッチされています。VisualNodeオブジェクトをContainerにキャストしようとしましたが、どちらも機能しませんでした。助けてください!。