] हालाँकि, कुछ परिदृश्यों में लैम्ब्डा अभिव्यक्तियों का उपयोग करने से अप्रत्याशित व्यवहार हो सकता है। def __init __ (स्व): ... self.buttons = [] IDX के लिए [3, 4] में: बटन = qtgui.qpushbutton ('बटन {} auto'.format (idx), स्व) button.clicked.connect (lambda x = idx: self.button_pushed (x)) self.buttons.append (बटन) main_layout.addwidget (बटन)
जब बटन क्लिक किए जाते हैं, तो 3 और 4 के अपेक्षित मान प्राप्त करने के बजाय, बटन_पश विधि को गलत प्राप्त होता है। स्लॉट में एक लैम्ब्डा अभिव्यक्ति का उपयोग करते समय, असाइन किए गए मान (जैसे कि इस मामले में x = idx) को उत्सर्जित तर्क द्वारा अधिलेखित किया जाता है। self.button_pushed (x))
यह संशोधन यह सुनिश्चित करता है कि सही मान बटन की स्थिति की परवाह किए बिना बटन_पश विधि को पारित कर दिया गया है। स्लॉट कनेक्शन के संदर्भ में, सिग्नल की आग लगने पर लैम्ब्डा फ़ंक्शन का मूल्यांकन नहीं किया जाता है। इसके बजाय, फ़ंक्शन के लिए एक सूचक (प्रतिस्थापित मापदंडों के साथ) सिग्नल से जुड़ा हुआ है। जब सिग्नल उत्सर्जित होता है, तो कनेक्टेड फ़ंक्शन को उन तर्कों के साथ कहा जाता है जो सिग्नल गुजरता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3