It's just a matter of calling:

connect(grabResult.data(), &QQuickItemGrabResult::ready, this, &MyClass::mySlot);

I haven't checked the current implementation but in any case it's a costly operation so using a shared object might also be a non-negligeable resource usage improvement.