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.