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

From Vigyanwiki
(Created page with "{{main article|Qt (framework)}} सिग्नल और स्लॉट Qt (टूलकिट) में पेश की गई एक भाषा निर्माण...")
 
No edit summary
Line 1: Line 1:
{{main article|Qt (framework)}}
{{main article|क्यूटी (फ्रेमवर्क) }}


सिग्नल और स्लॉट Qt (टूलकिट) में पेश की गई एक भाषा निर्माण है<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++ फ़ंक्शन पॉइंटर्स के समान है, लेकिन सिग्नल/स्लॉट सिस्टम कॉलबैक तर्कों की प्रकार-शुद्धता सुनिश्चित करता है।{{Citation needed|date=January 2018}}
सिग्नल और स्लॉट क्यूटी में पेश की गई एक भाषा निर्माण होता है<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++ फ़ंक्शन निर्देशक के समान है, लेकिन सिग्नल/स्लॉट सिस्टम कॉलबैक तर्कों की प्रकार-शुद्धता सुनिश्चित करता है।


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


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


==वैकल्पिक कार्यान्वयन==
==वैकल्पिक कार्यान्वयन==
{{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++]] टेम्प्लेट पर आधारित सिग्नल/स्लॉट सिस्टम के कुछ कार्यान्वयन हैं, जिन्हें अतिरिक्त मेटाऑब्जेक्ट कंपाइलर की आवश्यकता नहीं होती है, जैसा कि Qt द्वारा उपयोग किया जाता है, जैसे कि [[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] के लिए सिग्नल का एक और कार्यान्वयन मौजूद है, जो Qt में C# इवेंट और सिग्नल/स्लॉट से प्रेरित है। इसके अतिरिक्त, एक प्रतिनिधि एक स्थानीय चर हो सकता है, एक [[फ़ंक्शन सूचक]] की तरह, जबकि क्यूटी में एक स्लॉट एक क्लास सदस्य के रूप में घोषित होना चाहिए। C आधारित GObject प्रणाली भी [http://developer.gnome.org/gobject/stable/gobject-Signals.html GSignal] के माध्यम से समान कार्यक्षमता प्रदान करती है।
[[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] के माध्यम से समान कार्यक्षमता प्रदान करती है।
 
डी में इसे [https://dlang.org/phobos/std_signals.html std.signals] द्वारा कार्यान्वित किया जाता है।
डी में इसे [https://dlang.org/phobos/std_signals.html std.signals] द्वारा कार्यान्वित किया जाता है।



Revision as of 11:26, 4 August 2023

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

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

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

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

Template:Cleanup-section C++ टेम्प्लेट पर आधारित सिग्नल/स्लॉट सिस्टम के कुछ कार्यान्वयन हैं, जिन्हें अतिरिक्त मेटाऑब्जेक्ट कंपाइलर की आवश्यकता नहीं होती है, जैसा कि क्यूटी द्वारा उपयोग किया जाता है, जैसे कि libsigc++, sigslot, vdk-signals, -स्लॉट नैनो-सिग्नल-स्लॉट, neosigslot, सिग्नल, boost.signals2, Synapse, p/cpp-events Cpp::Events, प्लैटिनम, JBroad ढलाईकार और KDBindingsसीएलआई भाषाओं की सूची (सीएलआई) भाषाएं जैसे सी शार्प (प्रोग्रामिंग भाषा) | सी # भी एक समान निर्माण का समर्थन करती है, हालांकि एक अलग शब्दावली और वाक्यविन्यास के साथ: घटनाएं सिग्नल की भूमिका निभाती हैं, और प्रतिनिधि (सीएलआई) स्लॉट हैं। ActionScript 3.0 के लिए सिग्नल का एक और कार्यान्वयन मौजूद है, जो क्यूटी में C इवेंट और सिग्नल/स्लॉट से प्रेरित है। इसके अतिरिक्त, एक प्रतिनिधि एक स्थानीय चर हो सकता है, एक फ़ंक्शन सूचक की तरह, जबकि क्यूटी में एक स्लॉट एक क्लास सदस्य के रूप में घोषित होना चाहिए। C आधारित GObject प्रणाली भी GSignal के माध्यम से समान कार्यक्षमता प्रदान करती है।

डी में इसे std.signals द्वारा कार्यान्वित किया जाता है।

यह भी देखें

पुस्तकालय

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

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

संदर्भ

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

Template:Qt