2012-07-02 41 views
18

मैं python-mpdor के स्रोत कोड में तलाश कर दिया गया है और यह कहा गया है कि यह,ग्लिब और गोब्जेक्ट वास्तव में क्या है?

gobject आधारित है से निपटने के लिए आसान घटना के लिए (उच्च स्तरीय ग्राहक कक्षा में)।

तो, किसी को simpler terms में मुझे समझा सकते हैं कि क्या वास्तव में GLib और GObject कर रहे हैं और वे एक दूसरे के और क्या भूमिका यह ईवेंट प्रबंधन में खेलता है के साथ कैसे सहभागिता करते हैं।

मैंने Glib and GObject को देखने का प्रयास किया लेकिन मुझे इसके लिए कोई बुनियादी स्पष्टीकरण नहीं मिला। मुझे मिली सभी स्पष्टीकरण तकनीकी द्वारा बहुत तकनीकी हैं, मेरा मतलब है कि शुरुआत के लिए उपयुक्त नहीं है।

इसके अलावा, क्या कोई ग्लिब और गोब्जेक्ट के बारे में beginner ट्यूटोरियल/आलेखों को इंगित कर सकता है।

उत्तर

30

चिकना और GOBject 2 अलग सी पुस्तकालय हैं जहाँ से जीटीके + जीयूआई टूलकिट बनाया गया है (अन्य चीजों के साथ)।

चूंकि सी निम्न स्तर की भाषा है, इसलिए जीएलआईबी पाइथन (फ़ाइल इनपुट/आउटपुट, स्ट्रिंग मैनिपुलेशन, मेमोरी मैनेजमेंट, थ्रेडिंग इत्यादि) के साथ अंतर्निहित सुविधाओं के समान कई कार्यक्षमता प्रदान करता है।

चूंकि सी ऑब्जेक्ट उन्मुख भाषा नहीं है, इसलिए गोब्जेक्ट एक सी-आधारित ऑब्जेक्ट सिस्टम प्रदान करता है जिसमें गुण और विरासत शामिल है (फिर से, पहले से ही पायथन में बनाया गया है)। पायथन में, आप शायद ही कभी जीएलआईबी का उपयोग करते हैं (क्योंकि पाइथन में उस कार्यक्षमता में से अधिकांश कार्यक्षमता है) लेकिन गोब्जेक्ट जीएलआईबी पर निर्भर है।

सभी गोबेल-आधारित पुस्तकालयों को पाइथन जैसे अन्य भाषाओं में भाषा बाइंडिंग का समर्थन करने के लिए डिज़ाइन किया गया है।

आपके प्रश्न के बिंदु पर, गोब्जेक्ट एक कार्यक्रम प्रणाली प्रदान करता है जिसे "संकेत" कहा जाता है। GObject से व्युत्पन्न कोई भी वस्तु किसी ईवेंट की सूचनाओं को भेजने के लिए संकेतों को "उत्सर्जित" कर सकती है। MPDProtocolClientpython-mpdor में कक्षा GObject से ली गई है और इस प्रकार यह सिग्नल उत्सर्जित कर सकती है। इन संकेतों के लिए अनुप्रयोग "कनेक्ट" फ़ंक्शन। एफ

उदाहरण के लिए, README इस उदाहरण दिखाता है:

import gobject 
import mpdor 

def notify(client, vol): 
    print "mpd volume is at ", vol + "%" 

client = mpdor.client.Client() 
client.connect("mixer-change", notify) 
gobject.MainLoop().run() 

इस मामले में, समारोह notify नामित "mixer-change" संकेत है कि समारोह जिसका अर्थ है करने के लिए "जुड़ा" है में किसी भी समय बुलाया जाएगा ग्राहक "का उत्सर्जन करता है "वह संकेत। gobject.MainLoop().run() कॉल "main event loop" (मूल रूप से एक अनंत लूप) में प्रवेश करता है जो घटना-संचालित प्रोग्रामिंग में एक मानक अवधारणा है।

आपको शायद बहुत सारे गोब्जेक्ट/पायथन ट्यूटोरियल नहीं मिलेगा, हालांकि, यदि आप पाइथन/जीटीके + मूल बातें सीखते हैं तो आपको घटना लूप, सिग्नल, और अवधारणाओं की अवधारणाओं को समझने की संभावना होगी। संकेत कॉलबैक। (ऐसा लगता है कि पाइथन-एमपीडीओ जीटीके + 2 का उपयोग कर रहा है जो पीईजीटीके होगा क्योंकि नए जीटीके + 3 के विपरीत जो पीजीओजीजेक्ट है)।

शुभकामनाएं।

+0

+1 बहुत अच्छा स्पष्टीकरण। – RanRag

-5

चिकना और GObject Gnome/जीटीके + पायथन बाइंडिंग के दोनों हिस्सा हैं:

+0

लेकिन मैं क्या जानना चाहता हूं कि वे वास्तव में क्या हैं और इसकी आवश्यकता क्यों है। – RanRag

+0

मैंने अभी आपको बताया :) पीएस: तुम उस आदमी नहीं हो जिसने मुझे चिह्नित किया, है ना? – paulsm4

+0

नहीं, मैं वह लड़का नहीं हूँ। – RanRag