Vala + GTK + 3 والجرانيت (حفظ القيم في dconf)

البرمجة في Vala و GTK + ، لقد تساءلنا جميعًا عن كيفية جعل تطبيق مكتوب بلغة Vala و GTK + قادرًا على حفظ حالات معلمات حجم النافذة وغيرها؟ هم من هذه الحالات النموذجية التي نستخدمها com.gschemas لحفظ هذه القيم (هذا التطبيق المعروف dconf-Editor) الذي يدير هذه المخططات بيانياً.

الآن سأوضح لك كيفية القيام بذلك بخطوات بسيطة وبدون تعقيدات باستخدام فئة Granite.Services.Settings من مكتبة Granite.

ماذا نحتاج؟

نحتاج أولاً إلى تثبيت مكتبات GTK + و Granite و Vala من أجل تجميع التعليمات البرمجية الخاصة بنا. للقيام بذلك في Ubuntu / ElementaryOS ، نستخدم الأمر:

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

وسنحتاج أيضًا إلى أي محرر نصوص يدعم بناء جمل Vala / GTK + و XML مثل Scratch Text Editor (ElementaryOS الافتراضي) ، GEdit ، Sublime Text + Plugins ، إلخ.

الرمز

فيما يلي ملفات المثال. لفهم أفضل ، أترك الكود في PASTE مع التعليقات فيه:

main.vala
تعليمي.فالا
الإعدادات
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/

تجميع

لتجميع برنامجنا ، يتعين علينا تشغيل الأمر التالي في Terminal:

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

وقم بتشغيل الملف الثنائي باستخدام الأمر:

./main

استنتاجات

إنها واحدة من أفضل الطرق لحفظ حالة تطبيقنا في GSCHEMA باستخدام GLIB. يسعدني الرد على أي نوع من الأسئلة.

إليك لقطة شاشة لـ Ubuntu الخاص بي والمثال:

المفاجئة TUtorial


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   راؤول ب قال

    مقالة جيدة ، بعض دروس GTK في C ++ ليست سيئة. لقد تغيرت الأمور كثيرًا ، يوصي موقع GTK الرسمي بكتب من عام 2002 ، لقد أخطأت في شرائها.

    DevHelp يساعد أكثر من أي كتاب.

    1.    راؤول ب قال

      آسف قصدت C وليس C ++. عندما أقوم بفتح قوالب الكود ، أختار دائمًا "مشروع في C ++" ، لكنني أبرمج في C.

  2.   تهديد قال

    حسنًا ، أود أن أعرف وأعلم أن الأمر ليس كذلك ، لكن في الحقيقة لقد وجهت نفسي ما يكفي من الضربات الرأسية لأتمكن من تنفيذ هذا النهج ، أحتاج إلى تخصيص الخلفية وشاشة تسجيل الدخول مع صورة مؤسسية للمكان الذي أعمل فيه في فرق المستخدمين ، لديهم توزيعة فنزويلية تسمى Canaima ، استنادًا إلى Debian 7 Wheezy ، يقوم المستخدمون بالمصادقة عبر LDAP ويمكن للعديد من المستخدمين العمل على نفس الكمبيوتر الشخصي ، لذلك قد يكون هناك العديد من الجلسات التي يجب عليهم فيها امتلاك خلفية الشاشة ، يتم تخصيص الفرق بواسطة البرنامج النصي لتسهيل عمل الفنيين ثم يتم حقن السياسات بواسطة خادم puppetmaster.

    لقد حاولت باستخدام gsettings ولكنه يعمل فقط مع المستخدم الذي يقوم بتسجيل الدخول ، ويبدو أنه يحفظ المعلومات في قاعدة بيانات محلية لكل مستخدم وهو ما لم أحققه بعد ، وأنا أبحث عن بعض التكوين الذي ينطبق على النظام بأكمله وليس على مستخدم واحد.

    الجدير بالذكر أن الصورة تتغير باستمرار بسبب التواريخ الوطنية وأي سبب آخر ، لذا فهي ليست مجرد صورة ، بل يتم تحميلها بواسطة puppetmaster لكل عميل.

    ليس لدي أي فكرة عما إذا كان يمكن تطبيق شيء مثل هذا على حالتي.
    تحية.