आम्ही यासाठी एक साधी appपलेट तयार करणार आहोत दालचिनी. सुरूवातीस, आम्हाला ते माहित असले पाहिजे दालचिनी विविध प्रकारचे ofपलेट्स ऑफर करतात:
- मजकूर अनुप्रयोग (पॅनेलवर लेबल दर्शवित आहे)
- आयकॉनप्लेट (पॅनेलवर चिन्ह दर्शवित आहे)
- TextIconApplet (पॅनेलवरील चिन्ह आणि लेबल दोन्ही दर्शवित आहे)
- Letपलेट (हार्डवेअर विकसकांसाठी, जे आपण स्वतःस भरू शकता अशा रिक्त बॉक्स दर्शवितात)
या ट्यूटोरियल मध्ये आपल्याला पॅनेलवर फक्त एक आयकॉन दाखवायचा आहे, म्हणून आपण "आयकॉनप्लेट" वापरू. आमचे letपलेट प्रोग्राम करण्यासाठी दालचिनी किंवा गनोम आम्हाला जावास्क्रिप्ट मध्ये काही प्रोग्रामिंग माहित असणे आणि माहित असणे आवश्यक आहे
आमच्या कोडचे स्थान.
प्रथम आपल्या फाईलचे स्थान पाहू. आमच्या letपलेटचे स्थान खाली दिलेल्या पत्त्यावर दिले आहे:
/.local/share/cinnamon/applets
किंवा मध्ये /usr/share/cinnamon/applets
आमच्या अॅपलेट बनविणार्या फायली.
आम्ही applet.js परिभाषित करण्यास पुढे जाऊ
आता कोडचा कोड पाहण्यास पुढे जाऊया applet.js आणि त्यातील प्रत्येक वाक्य समजावून सांगा:
applet.js कोड प्रारंभ
आपल्या मागील कोडची प्रत्येक वाक्य पाहू
कॉन्स्ट लँग = इम्पोर्ट्स.लॅंग; / * आम्ही जीटीके आणि लाँग लायब्ररीची विनंती करतो, ते कोणत्याही जीनोम applicationप्लिकेशनचा मूलभूत भाग आहेत, ते आम्हाला विंडोज, विजेट्स तयार करण्यास आणि त्यांचा दुवा साधण्यास परवानगी देतात. * / कॉन्ट्रॅक्ट अॅपलेट = इम्पोर्ट्स.ई.एपलेट; / * आम्ही letपलेट लायब्ररीची विनंती करतो जी आम्हाला दालचिनी आणि ग्नोमसाठी letपलेट तयार करण्यास परवानगी देते आणि त्याच वेळी आम्हाला त्याचे गुणधर्म आणि कार्ये देते. * / कॉन्ट्रॅक्ट जीएलिब = आयात :.जी.लिब; / * जीएलआयबी हेल्प लायब्ररी आहे, जीनुममध्ये गोष्टी करण्यास आपल्याला परवानगी देते, उदाहरणार्थ हॅग्नॉग्नोम एचटीएमएल फाइल कुठे आहे ते सांगा, ती सिग्नलचा प्रभारी ग्रंथालय आहे. * / कॉन्स्ट गेटटेक्स्ट = आयात / विजेट. टेक्स्ट.डोमेन ('दालचिनी-letsपलेट्स' '); कॉन्ट _ = गेटटेक्स्ट.गेटेक्स्ट; // दालचिनी डेस्कटॉपसाठी आमची स्वतःची वैशिष्ट्ये आयात करण्यास अनुमती देणारी गॅटेक्स्ट लायब्ररी. कॉन्ट पॉपअपमेनू = आयात / बंद करा. मेनू; / * पॉपअपमेनू मेन्यू मॅनेजर वापरण्यासाठी एक लायब्ररी आहे, जे आम्हाला usuallyपलेट्समध्ये सहसा वापरल्या जाणार्या पॉपअप-मेनू विजेटची विनंती करण्यास परवानगी देते. * / फंक्शन मायप्लेट (अभिमुखता) {this._init (ओरिएंटेशन); }
आमच्या letपलेटचे निर्माता खाली परिभाषित केले आहे, चला आमचा वर्ग किंवा वर्ग पाहू:
आम्ही प्रत्येक वाक्याच्या परिभाषासह सुरू ठेवतो
मायअप्लेट.प्रोटोटाइप = {__प्रोटो __: letपलेट.आयकॉनप्लेट.प्रोटोटाइप, // आम्ही आमचा वर्ग किंवा वर्ग परिभाषित करतो _ फंक्शन (अभिमुखता) {letपलेट.आयकॉनप्लेट.प्रोटोटाइप.इनिट.कॉल (हे, अभिमुखता); / * आम्ही दालचिनीतून अभिमुखता सेट केली. Letपलेटचे पॅनेल शीर्षस्थानी किंवा तळाशी आहे की नाही हे आम्ही सेट केले आहे (याचा theपलेट मेनूच्या अभिमुखतेवर परिणाम होतो). * / प्रयत्न करा something // काहीतरी करा atch कॅच करा (ई) {// काय होते त्रुटी आढळल्यास} / * आमच्या अॅपलेटमध्ये उद्भवू शकणार्या कोणत्याही त्रुटी पकडण्यासाठी आणि ग्लोबल एरर लॉगवर ती लिहिलेली आहे याची खात्री करण्यासाठी आम्ही प्रयत्न / पकडण्याचा वापर करतो. अशाप्रकारे, काहीतरी चूक झाल्यास आपण लुकिंग ग्लासमधील त्रुटी पाहू शकता: Alt F2 दाबा, "lg" टाइप करा आणि "त्रुटी" टॅबवर क्लिक करा. * / हे.मेनूमॅनेजर = नवीन पॉपअपमेनू.पॉपअपमेनुजर (हे) ; // पॉपअप-मेनू तयार करा आणि मेनू व्यवस्थापक हे सेट करा. मेनू = नवीन letपलेट.अप्लेटपॉपअप मेनू (हे, अभिमुखता); // आम्ही एक मेनू तयार करतो. this.menuManager.addMenu (this.menu); // आम्ही पॉपअप मेनूमध्ये मेनू जोडतो. this.makeMenu (); // मेनूइटेम मेकमेनू, आम्ही मेकमेनू नावाचा मेन्यूम तयार करतो. this.buildContextMenu (); // buildContextMenu, आम्ही buildContextMenu नावाचे मेन्यूइम तयार करतो. this.set_applet_icon_name ("फोल्डर"); / * आम्ही letपलेट तयार करतो, हे प्रकरण अद्वितीय आहे, निवडलेले चिन्ह फोल्डर किंवा फोल्डर आहे, आम्हाला हवे असल्यास आम्ही मजकूर letपलेट देखील स्थापित करू शकतो. * /
उदाहरण म्हणून "फोल्डर" चे नाव "टर्मिनल" असे बदला, नवीन नावे स्थापित करण्यासाठी "डॉकी" जीनोम किंवा दालचिनी किंवा इतर कोणत्याही आयकॉन थीमचे नाव पहा, पत्त्यावर जा.
/usr/share/icons
this.set_applet_tooltip (_ ("विंडो मारण्यासाठी येथे क्लिक करा")); // आमच्या letपलेटमध्ये येऊ शकणार्या कोणत्याही त्रुटी पकडण्यासाठी पकडू. कॅच (ई) {ग्लोबल.लॉग एरर (ई); } MakeMenu: फंक्शन () {this.menu.addMenuItem (नवीन पॉपअपमेनु.पॉपअपमेनुआयटम ("चाचणी संदेश", {प्रतिक्रियाशील: सत्य})); }, / * आम्ही मेक मेनूचे नाव आणि त्याची वैशिष्ट्ये परिभाषित करतो. या प्रकरणात लेबल म्हणजे टेस्ट मेसेज ". आम्ही परिभाषित करतो {रिएक्टिव: ट्रू} जेव्हा आपण चुकीचे असेल तर मेनूईटम मधून पॉईंटर सहीमधून जातो तेव्हा मेन्युईटमची पार्श्वभूमी बदलेल. * / बिल्डकॉन्टेक्स्टमेनु: फंक्शन () {this.menu .addMenuItem (नवीन पॉपअपमेनु.पुपअपमेनूआयटम ("शो", {रिएक्टिव: खरे})));}, // आम्ही मेक मेनू मेनूचे नाव आणि त्याची वैशिष्ट्ये परिभाषित करतो. या प्रकरणात "शो" हे लेबल आहे. on_applet_clicked: फंक्शन (इव्हेंट) . this.menu.toggle ();} // पॉपअप-मेनू फंक्शन मुख्य (मेटाडेटा, अभिमुखता) कॉल करण्यासाठी letपलेटद्वारे उत्सर्जित सिग्नल my मायअप्पलेट = नवीन मायप्लेट (अभिमुखता); मायप्लेट परत द्या;} / * शेवटी , आम्हाला फक्त एक "मुख्य" फंक्शन जोडायचा आहे, जो प्रत्येक letपलेटमध्ये समान असेल, आमचे letपलेट तयार झाले आहे आणि दालचिनीवर परत आले आहे. * / // आम्ही लूप रिटर्न मायप्लेट बंद करतो;
आम्ही मेटाडेटा.जेसन परिभाषित करतो
"अंतिम-संपादित": "1331990905", // अंतिम आवृत्ती. "वर्णन": "सानुकूल वैयक्तिकरित्या परिभाषित जीटीके मेनू दर्शविण्यासाठी letपलेटवर क्लिक करा", // letपलेट वर्णन. "चिन्ह": "डॉकी", // letपलेट वर्णनासाठी वापरलेले चिन्हे. उदाहरण म्हणून "डॉकी" चे नाव "टर्मिनल", "फोल्डर" मध्ये बदला. "uuid": "काळा" // आमच्या मेटाडेटा.जेसन फाईलमध्ये "नाव" समाविष्ट केलेला फोल्डर: "सानुकूल जीटीके मेनू" // Appपलेट नाव.
नोट: नवीन नावे सेट करण्यासाठी जीनोम किंवा दालचिनी चिन्ह किंवा इतर कोणत्याही आयकॉन थीमचे नाव पहा, फाइल सिस्टम पत्त्यावर जा.
/usr/share/icons
अॅपलेटची प्रतिमा तयार केली
दालचिनी किंवा ग्नोमसाठी letपलेट तयार करण्यासाठी क्यूटी, जीटीके, वाला आणि इतर भाषा वापरल्या गेल्या
चला दालचिनीसाठी आमच्या letपलेटचे स्थान पाहू
आमच्या letपलेटचे स्थान खाली दिलेल्या पत्त्यावर दिले आहे:
/.local/share/cinnamon/applets
किंवा मध्ये
/usr/share/cinnamon/applets
आमच्या letपलेटची रचना
आम्ही applet.js परिभाषित करण्यास पुढे जाऊ
Letपलेट.जेएस कोड प्रारंभ करीत आहे
Letपलेट.जेजचा शेवट
आता letपलेट.जेएस कोड पाहू आणि त्यातील स्टेटमेंट समजावून घेऊ.
लिहिलेला कोड व्यावहारिकदृष्ट्या जावास्क्रिप्टसह लिहिलेल्या मागील उदाहरणासारखाच आहे.
केवळ सिग्नल बदलला आहे, जो आमच्या स्वयं-कार्यवाहीयोग्य कॉल करेल.
on_applet_clicked: फंक्शन (इव्हेंट) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
आमचे स्वयं कार्यवाही करण्यायोग्य Qt, Gtk, Gtkmm, wxWidget, Vala, इ. सह लिहिले जाऊ शकते. भाषा ज्याद्वारे स्वयं-कार्यवाही करण्यायोग्य तयार करता येऊ शकतात. आमच्या ऑटो एक्झिक्युटेबलला मेनू असे म्हणतात आणि ते Qtmenu फोल्डरमध्ये आहे.
आम्ही जीटीकेसाठी बाइंडिंग्ज असलेली इतर प्रोग्रामिंग भाषा देखील वापरू शकतो जसे की पायजीटीके, रुबी जीटीके, पर्ल जीटीक इत्यादी. ज्याचा वापर त्या भाषांमध्ये लिहिलेल्या कोडची अंमलबजावणी करण्यासाठी स्क्रिप्टद्वारे केला जाऊ शकतो. प्रोग्राम्स कॉल करणे, पॉपअप मेनू तयार करणे आणि आमच्या गरजेनुसार पॉपअप विंडो तयार करणे हे तत्व नेहमीच समान असते.
Qt सह लिहिलेल्या आमच्या स्वयं-कार्यवाहीचा कोड पाहू
आम्ही मेटाडेटा.जेसन परिभाषित करतो
मागील उदाहरणांप्रमाणेच कोड लिहिलेला आहे
Qt सह तयार केलेल्या letपलेटची प्रतिमा
जीटीके 3.10 सह तयार केलेल्या createdपलेटची प्रतिमा
येथे tपलेटचे एक छोटेसे उदाहरण आहे जी जीटीकेमध्ये एक्झिक्युटेबल लिहिलेले वापरते, या प्रकरणात आम्ही ओपनबॉक्समध्ये वापरलेले मायजीटीकेमेनु मेनू घेतो.
हे एक स्वत: ची अंमलबजावणी करणारे मेनू आहे.
ट्यूटोरियल आणि उदाहरणे डाउनलोड करा
मनोरंजक लेख ...
धन्यवाद . माझे म्हणजे आपण दररोज थोडेसे शिकत असतो.
खूप चांगले, मला ते आवडते, या प्रकारच्या appपलेट्स कशा तयार केल्या जातात हे नेहमी मला जाणून घ्यायचे होते
एक लहान दुरुस्ती. लेखामध्ये म्हटल्याप्रमाणे गेटटेक्स्ट दालचिनीसाठी काही विशिष्ट नाही, ते एक ग्रंथालय आहे जे स्वयंचलित भाषांतर आणि टेम्पलेट्समधून शक्य करते.
खूप चांगले ट्यूटोरियल आणि सर्व काही परंतु महत्त्वाचे म्हणजे आपण ते ठेवले नाही: वॉलपेपरशी दुवा साधा?
लिनक्स मिंट 16 पेट्रा वॉलपेपर डाउनलोड करा.
पॅकेजला पुदीना-पार्श्वभूमी-पेट्रा असे म्हणतात: http://packages.linuxmint.com/list.php?release=Petra
खूप मजेशीर लेख. खरं म्हणजे हे letsपलेट कसे तयार केले गेले याबद्दल मला नेहमीच प्रश्न पडला होता. कदाचित मला एमपीडी किंवा तत्सम कशासाठी मिनी-प्लेअर letपलेट तयार करण्यास प्रोत्साहित केले जाईल.
सामायिक केल्याबद्दल धन्यवाद!
उत्कृष्ट, मी दालचिनी एनएम-appपलेट (नेटवर्क मॅनेजर) सुधारित कसे करावे हे शोधत आहे, जेणेकरून माझ्याकडे इंटरनेटचा प्रवेश नसताना रंग बदलू शकेल, (माझ्याकडे एक वायफाय कार्ड आहे) आणि यामुळे मला स्वत: ला थोडेसे वळविण्यात मदत होईल
तेथे मरीयन, मला माहित नाही की आपण येथे पोस्ट करीत आहात. साभार.
कसे आहात, मॅट्युट… .. मी नेहमी या भागांभोवती फिरत असतो. चीअर्स
चांगला लेख.
फाइल आढळली नाही कॉपीराइट उल्लंघनासाठी ती निष्क्रिय केली गेली होती.
माझ्या म्हणण्याचा अर्थ असा आहे की आपल्याकडे ते तेथे असल्यास आपण ते पुन्हा अपलोड करू शकाल ???. कृपया.
धन्यवाद.