सिग्नल और स्लॉट: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{main article|क्यूटी (फ्रेमवर्क) }}
{{main article|क्यूटी (फ्रेमवर्क) }}


सिग्नल और स्लॉट क्यूटी में पेश की गई एक भाषा निर्माण होता है<ref>{{cite web|url=http://qt-project.org/doc/qt-5.1/qtcore/signalsandslots.html |title=Signals & Slots - QtCore 5.1 |publisher=Qt Project |date=2013-07-04 |accessdate=2013-07-04}}</ref> वस्तुओं के बीच संचार के लिए जो [[बॉयलरप्लेट कोड]] से बचते हुए [[पर्यवेक्षक पैटर्न|पर्यवेक्षक प्रतिरूप]] को क्रियान्वित करना आसान बनाता है। अवधारणा यह है कि जीयूआई [[जीयूआई विजेट]] घटना की जानकारी वाले सिग्नल भेज सकता है जिसे स्लॉट के रूप में जाने जाने वाले विशेष कार्यों का उपयोग करके अन्य विजेट/नियंत्रण द्वारा प्राप्त किया जा सकता है। यह C/C++ फ़ंक्शन निर्देशक के समान है, लेकिन सिग्नल/स्लॉट सिस्टम कॉलबैक तर्कों की प्रकार-शुद्धता सुनिश्चित करता है।
'''सिग्नल और स्लॉट''' क्यूटी में पेश की गई एक भाषा निर्माण होता है<ref>{{cite web|url=http://qt-project.org/doc/qt-5.1/qtcore/signalsandslots.html |title=Signals & Slots - QtCore 5.1 |publisher=Qt Project |date=2013-07-04 |accessdate=2013-07-04}}</ref> वस्तुओं के बीच संचार के लिए जो [[बॉयलरप्लेट कोड]] से बचते हुए [[पर्यवेक्षक पैटर्न|पर्यवेक्षक प्रतिरूप]] को क्रियान्वित करना आसान बनाता है। अवधारणा यह है कि जीयूआई [[जीयूआई विजेट]] घटना की जानकारी वाले सिग्नल भेज सकता है जिसे स्लॉट के रूप में जाने जाने वाले विशेष कार्यों का उपयोग करके अन्य विजेट/नियंत्रण द्वारा प्राप्त किया जा सकता है। यह C/C++ फ़ंक्शन निर्देशक के समान है, लेकिन सिग्नल/स्लॉट सिस्टम कॉलबैक तर्कों की प्रकार-शुद्धता सुनिश्चित करता है।


सिग्नल/स्लॉट सिस्टम [[ग्राफिकल यूज़र इंटरफ़ेस|ग्राफिकल यूज़र अंतरफलक]] डिज़ाइन करने के तरीके के साथ अच्छी तरह से फिट बैठता है। इसी तरह, सिग्नल/स्लॉट सिस्टम का उपयोग अन्य गैर-जीयूआई उपयोगों के लिए किया जा सकता है, उदाहरण के लिए एसिंक्रोनस I/O (सॉकेट, पाइप, सीरियल डिवाइस इत्यादि सहित) वृतांत अधिसूचना या मध्यांतर वृतांत को उचित ऑब्जेक्ट तुरंत और विधियों या फ़ंक्शंस के साथ संबद्ध करने के लिए होता है। इसका उपयोग करना आसान है और कोई पंजीकरण/पंजीकरण/आह्वान कोड लिखने की आवश्यकता नहीं है, क्योंकि क्यूटी का मेटाऑब्जेक्ट संकलक (एमओसी) स्वचालित रूप से आवश्यक बुनियादी ढांचा तैयार करता है।
सिग्नल/स्लॉट सिस्टम [[ग्राफिकल यूज़र इंटरफ़ेस|ग्राफिकल यूज़र अंतरफलक]] डिज़ाइन करने के तरीके के साथ अच्छी तरह से फिट बैठता है। इसी तरह, सिग्नल/स्लॉट सिस्टम का उपयोग अन्य गैर-जीयूआई उपयोगों के लिए किया जा सकता है, उदाहरण के लिए एसिंक्रोनस I/O (सॉकेट, पाइप, सीरियल डिवाइस इत्यादि सहित) वृतांत अधिसूचना या मध्यांतर वृतांत को उचित ऑब्जेक्ट तुरंत और विधियों या फ़ंक्शंस के साथ संबद्ध करने के लिए होता है। इसका उपयोग करना आसान है और कोई पंजीकरण/पंजीकरण/आह्वान कोड लिखने की आवश्यकता नहीं है, क्योंकि क्यूटी का मेटाऑब्जेक्ट संकलक (एमओसी) स्वचालित रूप से आवश्यक बुनियादी ढांचा तैयार करता है।
Line 9: Line 9:
==वैकल्पिक कार्यान्वयन==
==वैकल्पिक कार्यान्वयन==
{{cleanup-section|reason=Too many alternative implementations without describing what signal/slot is|date=July 2013}}
{{cleanup-section|reason=Too many alternative implementations without describing what signal/slot is|date=July 2013}}
[[C++]] टेम्प्लेट पर आधारित सिग्नल/स्लॉट सिस्टम के कुछ कार्यान्वयन हैं, जिन्हें अतिरिक्त मेटाऑब्जेक्ट कंपाइलर की आवश्यकता नहीं होती है, जैसा कि क्यूटी द्वारा उपयोग किया जाता है, जैसे कि [[libsigc++]], [http://sigslot.sourceforge.net/ sigslot], [https://vdksoft.github.io/signals/index.html vdk-signals], [https://github.com/NoAvailableAlias/nano-signal -स्लॉट नैनो-सिग्नल-स्लॉट], [http://i42.co.uk/stuff/neosigslot.htm neosigslot], [https://github.com/pbhogan/Signals सिग्नल], [http://www.boost.org/doc/html/signals2.html boost.signals2], [https://zajo.github.io/synapse/ Synapse], [https://code.google.com/ p/cpp-events Cpp::Events], [https://web.archive.org/web/20100124022807/http://pt-framework.sourceforge.net/sigslot.html प्लैटिनम], [https://web.archive.org/web/20090511001206/http://www.newplanetsoftware.com/jx/mvc.php JBroad ढलाईकार] और [https://github.com/KDAB/KDBindings KDBindings]। [[सीएलआई भाषाओं की सूची]] (सीएलआई) भाषाएं जैसे सी शार्प (प्रोग्रामिंग भाषा) | सी # भी एक समान निर्माण का समर्थन करती है, हालांकि एक अलग शब्दावली और वाक्यविन्यास के साथ: घटनाएं सिग्नल की भूमिका निभाती हैं, और [[प्रतिनिधि (सीएलआई)]] स्लॉट हैं। [https://github.com/robertpenner/as3-signals/ ActionScript 3.0] के लिए सिग्नल का एक और कार्यान्वयन मौजूद है, जो क्यूटी में C इवेंट और सिग्नल/स्लॉट से प्रेरित है। इसके अतिरिक्त, एक प्रतिनिधि एक स्थानीय चर हो सकता है, एक [[फ़ंक्शन सूचक]] की तरह, जबकि क्यूटी में एक स्लॉट एक क्लास सदस्य के रूप में घोषित होना चाहिए। C आधारित GObject प्रणाली भी [http://developer.gnome.org/gobject/stable/gobject-Signals.html GSignal] के माध्यम से समान कार्यक्षमता प्रदान करती है।
[[C++]] टेम्प्लेट पर आधारित सिग्नल/स्लॉट सिस्टम के कुछ कार्यान्वयन हैं, जिन्हें अतिरिक्त मेटाऑब्जेक्ट कंपाइलर की आवश्यकता नहीं होती है, जैसा कि क्यूटी द्वारा उपयोग किया जाता है, जैसे कि लिब्सीजिसी[[libsigc++|++]], सिजसलॉट, विडिक[https://vdksoft.github.io/signals/index.html -सिग्नल] , [https://github.com/NoAvailableAlias/nano-signal -स्लॉट नैनो-सिग्नल-स्लॉट], निओसिगस्लॉट, [https://github.com/pbhogan/Signals सिग्नल], बूस्ट सिग्नल[http://www.boost.org/doc/html/signals2.html 2], सिनेप्स, [https://code.google.com/ p/सीपीपी-इवेंट सीपीपी:इवेंट], [https://web.archive.org/web/20100124022807/http://pt-framework.sourceforge.net/sigslot.html प्लैटिनम], [https://web.archive.org/web/20090511001206/http://www.newplanetsoftware.com/jx/mvc.php Jब्रोड ढलाईकार] और केडी बाईंडिंग्स [[सीएलआई भाषाओं की सूची]] (सीएलआई) भाषाएं जैसे सी शार्प (प्रोग्रामिंग भाषा) होता है | C भी एक समान निर्माण का समर्थन करती है, चूकि एक अलग शब्दावली और वाक्यविन्यास के साथ: घटनाएं सिग्नल की भूमिका निभाती हैं, और [[प्रतिनिधि (सीएलआई)]] स्लॉट होता हैं। एक्शन स्क्रिप्ट [https://github.com/robertpenner/as3-signals/ 3.0] के लिए सिग्नल और कार्यान्वयन उपस्थित होता है, जो क्यूटी में C इवेंट और सिग्नल/स्लॉट से प्रेरित होता  है। इसके अतिरिक्त, एक प्रतिनिधि स्थानीय चर हो सकता है, [[फ़ंक्शन सूचक]] की तरह, यघपि क्यूटी में स्लॉट एक क्लास सदस्य के रूप में घोषित होना चाहिए था। C आधारित Gऑब्जेक्ट प्रणाली भी [http://developer.gnome.org/gobject/stable/gobject-Signals.html Gसिग्नल] के माध्यम से समान कार्यक्षमता प्रदान करती है।


डी में इसे [https://dlang.org/phobos/std_signals.html std.signals] द्वारा कार्यान्वित किया जाता है।
D में इसे एसटीडी[https://dlang.org/phobos/std_signals.html .सिग्नल] द्वारा कार्यान्वित किया जाता है।


== यह भी देखें ==
== यह भी देखें ==

Revision as of 11:58, 4 August 2023

सिग्नल और स्लॉट क्यूटी में पेश की गई एक भाषा निर्माण होता है[1] वस्तुओं के बीच संचार के लिए जो बॉयलरप्लेट कोड से बचते हुए पर्यवेक्षक प्रतिरूप को क्रियान्वित करना आसान बनाता है। अवधारणा यह है कि जीयूआई जीयूआई विजेट घटना की जानकारी वाले सिग्नल भेज सकता है जिसे स्लॉट के रूप में जाने जाने वाले विशेष कार्यों का उपयोग करके अन्य विजेट/नियंत्रण द्वारा प्राप्त किया जा सकता है। यह C/C++ फ़ंक्शन निर्देशक के समान है, लेकिन सिग्नल/स्लॉट सिस्टम कॉलबैक तर्कों की प्रकार-शुद्धता सुनिश्चित करता है।

सिग्नल/स्लॉट सिस्टम ग्राफिकल यूज़र अंतरफलक डिज़ाइन करने के तरीके के साथ अच्छी तरह से फिट बैठता है। इसी तरह, सिग्नल/स्लॉट सिस्टम का उपयोग अन्य गैर-जीयूआई उपयोगों के लिए किया जा सकता है, उदाहरण के लिए एसिंक्रोनस I/O (सॉकेट, पाइप, सीरियल डिवाइस इत्यादि सहित) वृतांत अधिसूचना या मध्यांतर वृतांत को उचित ऑब्जेक्ट तुरंत और विधियों या फ़ंक्शंस के साथ संबद्ध करने के लिए होता है। इसका उपयोग करना आसान है और कोई पंजीकरण/पंजीकरण/आह्वान कोड लिखने की आवश्यकता नहीं है, क्योंकि क्यूटी का मेटाऑब्जेक्ट संकलक (एमओसी) स्वचालित रूप से आवश्यक बुनियादी ढांचा तैयार करता है।

एक स्प्रेडशीट प्रोग्राम अपडेट सिस्टम को सिग्नल और स्लॉट का उपयोग करके कार्यान्वित किया जा सकता है, जिससे कि जब कोई सेल बदला जाए, तो उसके आश्रित सेल को सूचित/अपडेट किया जा सकता है।

वैकल्पिक कार्यान्वयन

Template:Cleanup-section C++ टेम्प्लेट पर आधारित सिग्नल/स्लॉट सिस्टम के कुछ कार्यान्वयन हैं, जिन्हें अतिरिक्त मेटाऑब्जेक्ट कंपाइलर की आवश्यकता नहीं होती है, जैसा कि क्यूटी द्वारा उपयोग किया जाता है, जैसे कि लिब्सीजिसी++, सिजसलॉट, विडिक-सिग्नल , -स्लॉट नैनो-सिग्नल-स्लॉट, निओसिगस्लॉट, सिग्नल, बूस्ट सिग्नल2, सिनेप्स, p/सीपीपी-इवेंट सीपीपी:इवेंट, प्लैटिनम, Jब्रोड ढलाईकार और केडी बाईंडिंग्स सीएलआई भाषाओं की सूची (सीएलआई) भाषाएं जैसे सी शार्प (प्रोग्रामिंग भाषा) होता है | C भी एक समान निर्माण का समर्थन करती है, चूकि एक अलग शब्दावली और वाक्यविन्यास के साथ: घटनाएं सिग्नल की भूमिका निभाती हैं, और प्रतिनिधि (सीएलआई) स्लॉट होता हैं। एक्शन स्क्रिप्ट 3.0 के लिए सिग्नल और कार्यान्वयन उपस्थित होता है, जो क्यूटी में C इवेंट और सिग्नल/स्लॉट से प्रेरित होता है। इसके अतिरिक्त, एक प्रतिनिधि स्थानीय चर हो सकता है, फ़ंक्शन सूचक की तरह, यघपि क्यूटी में स्लॉट एक क्लास सदस्य के रूप में घोषित होना चाहिए था। C आधारित Gऑब्जेक्ट प्रणाली भी Gसिग्नल के माध्यम से समान कार्यक्षमता प्रदान करती है।

D में इसे एसटीडी.सिग्नल द्वारा कार्यान्वित किया जाता है।

यह भी देखें

पुस्तकालय

जावा: sig4j - मल्टी-थ्रेडेड, टाइप-सेफ, जावा 8 में पेश किए गए FunctionalInterface एनोटेशन पर आधारित है।

सी++: vdk-signals - थ्रेड-सुरक्षित, टाइप-सुरक्षित, परमाणु चर के साथ C++11 में लिखा गया है।

संदर्भ

  1. "Signals & Slots - QtCore 5.1". Qt Project. 2013-07-04. Retrieved 2013-07-04.

Template:Qt