वाला + जीटीके + 3 और ग्रेनाइट (dconf में मूल्यों को बचाएं)

Vala और GTK + में प्रोग्रामिंग करते हुए, हमने कभी सोचा है कि Vala और GTK + में लिखे गए एप्लिकेशन को विंडो आकार के मापदंडों और अन्य लोगों को बचाने में सक्षम कैसे बनाया जाए? वे इन विशिष्ट मामलों के हैं जिनका हम उपयोग करते हैं जीएसकेमास इन मूल्यों (इस प्रसिद्ध अनुप्रयोग dconf- संपादक) को बचाने के लिए जो इन योजनाओं का रेखांकन करता है।

अब मैं आपको दिखाता हूं कि यह कैसे करना है और सरल चरणों में और बिना ग्रेनाइट का उपयोग किए जटिलताओं के साथ। ग्रेनाइट लाइब्रेरी से वर्ग।

हमारी जरूरतें क्या हैं?

पहले हमें अपने कोड को संकलित करने के लिए GTK +, ग्रेनाइट और Vala लाइब्रेरी स्थापित करने की आवश्यकता है। Ubuntu / ElementaryOS में ऐसा करने के लिए हम कमांड का उपयोग करते हैं:

sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac

और हमें किसी भी टेक्स्ट एडिटर की आवश्यकता होगी जो Vala / GTK + और XML सिंटैक्स जैसे स्क्रैच टेक्स्ट एडिटर (एलिमेंटरीओएस डिफॉल्ट), GEdit, सब्लिम टेक्स्ट + प्लगइन्स आदि का समर्थन करता हो।

कोड

यहाँ उदाहरण फ़ाइलें हैं। बेहतर समझ के लिए मैं उनमें टिप्पणी के साथ PASTE में कोड छोड़ता हूं:

मुख्य वालाval
ट्यूटोरियल.वाला
सेटिंग्स
org.tutorial.gschema.xml

स्पष्टीकरण

स्कीमा फ़ाइल, यदि यह XML है या होनी चाहिए और ORG.APLICACION.GSCHEMA.XML कहलाती है। यानी, ORG और GSCHEMA.XML दोनों को एक स्कीमा के रूप में पहचानने के लिए dconf के लिए होना चाहिए। इसके अलावा, इन आरेखों को मार्ग में कॉपी किया जाना चाहिए:

/usr/share/glib-2.0/schemas/

और उन्हें DCONF के लिए उन्हें संकलित करने की आवश्यकता है, इसके लिए हम कमांड निष्पादित करते हैं:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

संकलन

हमारे कार्यक्रम को संकलित करने के लिए हमें निम्नलिखित कमांड को एक टर्मिनल में लॉन्च करना होगा:

valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala

और कमांड के साथ बाइनरी चलाएं:

./main

निष्कर्ष

यह GLIB का उपयोग करके GSCHEMA में हमारे APP की स्थिति को बचाने के लिए सबसे अच्छे तरीकों में से एक है। किसी भी तरह के सवाल का जवाब देने में मुझे खुशी होगी।

यहाँ मेरे Ubuntu और उदाहरण का एक स्क्रीनशॉट है:

तस्वीर- TUtorial


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   राउल पी कहा

    अच्छा लेख, C ++ में कुछ GTK ट्यूटोरियल अच्छे हैं। चीजें बहुत बदल गई हैं, आधिकारिक जीटीके साइट 2002 से पुस्तकों की सिफारिश करती है, मैंने इसे खरीदने की गलती की।

    देवहेल्प किसी भी किताब से ज्यादा मदद करता है।

    1.    राउल पी कहा

      सॉरी मेरा मतलब सी था, सी ++ नहीं। जब मैं कोडब्लॉक खोलता हूं, तो मैं हमेशा "C ++ में एक प्रोजेक्ट" चुनता हूं, लेकिन मैं सी में प्रोग्राम करता हूं।

  2.   धमकी कहा

    अच्छा तुतो, मैं जानना चाहूंगा और मुझे पता है कि यह मामला नहीं है, लेकिन वास्तव में मैंने खुद को पर्याप्त सिर दिया है ताकि इस दृष्टिकोण को पूरा करने में सक्षम हो, मुझे एक संस्थागत के साथ पृष्ठभूमि और लॉगिन स्क्रीन को अनुकूलित करने की आवश्यकता है छवि जहां मैं उपयोगकर्ताओं की टीमों में काम करता हूं, उनके पास वेनेजुएला डिस्ट्रो है जिसे कैनिमा कहा जाता है, डेबियन 7 व्हीजी के आधार पर, उपयोगकर्ता LDAP के माध्यम से प्रमाणित करते हैं और कई उपयोगकर्ता एक ही पीसी पर काम कर सकते हैं, इसलिए ऐसा हो सकता है कि कई हैं सत्र जिसमें उन्हें वॉलपेपर का मालिक होना चाहिए, तकनीशियनों के काम को सुविधाजनक बनाने के लिए टीमों को स्क्रिप्ट द्वारा अनुकूलित किया जाता है और फिर नीतियों को कठपुतली सर्वर द्वारा इंजेक्ट किया जाता है।

    मैंने gsettings के साथ प्रयास किया है, लेकिन यह केवल उस उपयोगकर्ता के साथ काम करता है जो लॉग इन कर रहा है, जाहिर है कि यह प्रति उपयोगकर्ता एक स्थानीय डेटाबेस में जानकारी बचाता है जो मुझे अभी तक प्राप्त नहीं हुआ है, मैं कुछ कॉन्फ़िगरेशन की तलाश कर रहा हूं जो पूरे सिस्टम पर लागू होता है और नहीं एक अकेला उपयोगकर्ता।

    यह ध्यान देने योग्य है कि राष्ट्रीय तिथियों और किसी अन्य कारण से छवि लगातार बदल रही है, इसलिए यह केवल एक छवि नहीं है, उन्हें प्रत्येक ग्राहक के लिए कठपुतली द्वारा अपलोड किया जाता है।

    मुझे इस बात का कोई अंदाजा नहीं है कि क्या मेरे मामले में ऐसा कुछ लागू किया जा सकता है।
    नमस्ते.