प्रारंभिक क्यूटी 5 संस्करणों में मुझे यहां दिखाए गए संकेतों से लैम्बडा को डिस्कनेक्ट करना होगा: "Disconnecting lambda functions in Qt5"।क्या मुझे अभी भी Qt5.5 में सिग्नल से लैम्ब्डा को डिस्कनेक्ट करना है?
Here मैं निम्नलिखित बयान पाया: कोई स्वचालित वियोग जब 'रिसीवर' नष्ट हो जाता है, क्योंकि इसमें कोई QObject साथ एक functor है नहीं है। हालांकि, 5.2 के बाद से एक अधिभार है जो "संदर्भ वस्तु" जोड़ता है। जब उस वस्तु को नष्ट कर दिया जाता है, तो कनेक्शन टूट जाता है (संदर्भ थ्रेड एफ़िनिटी के लिए भी प्रयोग किया जाता है: लैम्बडा को संदर्भ के रूप में उपयोग की जाने वाली वस्तु के ईवेंट लूप के धागे में बुलाया जाएगा)।
- इसका मतलब यह मैं अब है Qt5.2 या बाद में lambdas डिस्कनेक्ट करने के लिए करता है?
- क्या मुझे उस संदर्भ को पारित करना है या यह स्वचालित रूप से किया जाता है?
संदर्भ वस्तु को QObject होने की आवश्यकता है, है ना? यह सादा सी ++ ऑब्जेक्ट्स के लिए काम नहीं करता है, बस पुनः पुष्टि करने के लिए। –
हां, संदर्भ वस्तु एक QObject होना चाहिए। – ajshort