BB10 캐스케이드 API에서 Touch Event 대상에 도달하는 데 문제가 있습니다. 나는 여러 컨테이너를 가지고 있는데 하나는 다른 컨테이너보다 아래쪽에 있고 하나의 컨테이너에는 동일한 Touch 신호와 슬롯이 할당되어 있습니다. 모든 것이 C++에서 동적으로로드됩니다. 따라서 각 터치 이벤트를 잡으려면 어떤 컨테이너가 이벤트를 트리거했는지 알아야합니다. TouchEvent에서 TARGET 속성을 사용해야한다는 것을 읽었지만 제대로 작동하지 않고 이유를 알지 못합니다. 잘 작동하고 다른캐스케이드 타깃 가져 오기 TouchEvent not working
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
}
}
모든 : 그래서 도움
을 요구하고있어 여기에 내 코드입니다. 내 컨테이너 목록은 해당 텍스트로 잘 작성됩니다. 그 중 하나를 클릭하면 이벤트가 성공적으로 처리됩니다. 또한 VisualNode 객체를 Container로 캐스팅하려고 시도했지만 작동하지도 않았습니다. 도와주세요!.