درس صغير: إنشاء تطبيقات للقرفة

سنقوم بإنشاء تطبيق صغير بسيط لـ قرفة. للبدء ، يجب أن نعرف ذلك قرفة يقدم أنواعًا مختلفة من التطبيقات الصغيرة:

  • نص صغير (عرض ملصق على اللوحة)
  • IconApplet (يظهر أيقونة على اللوحة)
  • TextIconApplet (يشير إلى رمز وتسمية على اللوحة)
  • الصغير (للمطورين المتشددين ، الذين يعرضون مربعًا فارغًا يمكنك ملؤه بنفسك)

في هذا البرنامج التعليمي ، نريد ببساطة عرض رمز على اللوحة ، لذلك سنستخدم "IconApplet". من أجل برمجة التطبيق الصغير لدينا قرفة أو جنوم نحتاج إلى معرفة ومعرفة شيء ما عن برمجة جافا سكريبت

موقع رمزنا.

أولاً ، دعنا نرى موقع ملفنا. يتم إعطاء موقع التطبيق الصغير الخاص بنا على العناوين التالية:

/.local/share/cinnamon/applets س و /usr/share/cinnamon/applets

القرفة

الملفات التي يتكون منها التطبيق الصغير الخاص بنا.

القرفة 2

ننتقل إلى تعريف applet.js

كود

التطبيق الصغير.js

الآن دعنا ننتقل إلى رؤية رمز التطبيق الصغير.js وشرح كل جملة من جملها:

يبدأ كود applet.js

رمز بريمج

كود جافا سكريبت

دعونا نرى كل جملة من الجمل في الكود السابق

const لانج = imports.lang ؛ / * نحن نستدعي مكتبات Gtk و Lang ، فهي جزء أساسي من أي تطبيق GNOME ، فهي تسمح لنا بإنشاء نوافذ وعناصر واجهة مستخدم وربطها. * / Const Applet = imports.ui.applet؛ / * نستدعي مكتبة التطبيقات الصغيرة التي تسمح لنا بإنشاء تطبيق صغير لـ Cinnamon و Gnome وفي نفس الوقت تعطينا خصائصها ووظائفها. * / Const GLib = imports.gi.GLib؛ / * GLib هي مكتبة مساعدة ، فهي تتيح لنا القيام بأشياء في جنوم ، على سبيل المثال تحديد مكان وجود ملف hellognome.html ، إنها المكتبة المسؤولة عن الإشارات. * / Const Gettext = imports.gettext.domain ('قرفة' -Applets ') ؛ const _ = Gettext.gettext ؛ // مكتبة Gettext التي تسمح لنا باستيراد خصائصنا الخاصة لسطح مكتب Cinnamon. const PopupMenu = imports.ui.popupMenu ؛ / * PopupMenu هي مكتبة لاستخدام مدير القائمة ، فهي تسمح لنا باستدعاء عنصر واجهة القائمة المنبثقة المستخدم عادة في التطبيقات. * / Function MyApplet (الاتجاه) {this._init (الاتجاه) ؛ }

بعد ذلك نحدد منشئ التطبيق الصغير الخاص بنا ، دعنا نلقي نظرة على الفصل أو الفصل لدينا:

فئة gjs

نواصل تعريف كل جملة

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype، // نحدد Class أو Class _init: function (direction) {Applet.IconApplet.prototype._init.call (this، orientation)؛ / * نحدد الاتجاه من خلال القرفة. قمنا بتعيين ما إذا كانت لوحة التطبيق الصغير في الجزء العلوي أو السفلي (هذا له تأثير على اتجاه قوائم التطبيق الصغير). * / جرِّب {// افعل شيئًا} Catch (e) {// ماذا يحدث إذا حدث خطأ } / * نستخدم المحاولة / الالتقاط للقبض على أي أخطاء قد تحدث في التطبيق الصغير الخاص بنا وللتأكد من كتابتها في سجل الأخطاء العام. بهذه الطريقة ، إذا حدث خطأ ما ، يمكنك رؤية الخطأ في Looking Glass: اضغط على Alt F2 ، واكتب "lg" وانقر فوق علامة التبويب "أخطاء". * / This.menuManager = new PopupMenu.PopupMenuManager (this) ؛ // أنشئ القائمة المنبثقة وقم بتعيين مدير القائمة this.menu = new Applet.AppletPopupMenu (هذا ، الاتجاه) ؛ // نقوم بإنشاء قائمة. this.menuManager.addMenu (this.menu) ؛ // نضيف القائمة إلى القائمة المنبثقة. this.makeMenu () ، // menuitem makeMenu ، نصنع قائمة تسمى makeMenu. this.buildContextMenu () ، // buildContextMenu ، نقوم بإنشاء قائمة تسمى buildContextMenu. this.set_applet_icon_name ("المجلد") ؛ / * نقوم بإنشاء التطبيق الصغير ، هذه الحالة فريدة من نوعها ، الرمز المختار هو المجلد أو المجلد ، يمكننا أيضًا إنشاء برنامج نصي صغير إذا أردنا. * /

كمثال ، قم بتغيير اسم "folder" إلى "terminal" ، "docky" لإنشاء أسماء جديدة ، انظر اسم أيقونات Gnome أو Cinnamon أو أي سمة رمز أخرى ، انتقل إلى العنوان.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("انقر هنا لقتل نافذة")) ؛ // التقط لالتقاط أي أخطاء قد تحدث في التطبيق الصغير الخاص بنا. catch (e) {global.logError (هـ) ؛ } makeMenu: function () {this.menu.addMenuItem (new PopupMenu.PopupMenuItem ("Test Message"، {رد فعل: صحيح}))؛ }، / * نحدد اسم قائمة makeMenu وخصائصها. في هذه الحالة ، تكون التسمية عبارة عن رسالة اختبار ". سنحدد {رد فعل: صحيح} نثبت أن خلفية القائمة ستتغير عندما يمر المؤشر فوق القائمة من خلال" صواب "إذا كانت خاطئة يحدث العكس. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show"، {reactive: true}))؛}، // نحدد اسم قائمة makeMenu وخصائصها. في هذه الحالة تكون التسمية "عرض ". on_applet_clicked: function (event) {this.menu.toggle ()؛} // Signal المنبعثة من التطبيق الصغير ، لاستدعاء وظيفة القائمة المنبثقة الرئيسية (البيانات الوصفية ، الاتجاه) {let myApplet = new MyApplet (الاتجاه) ؛ العودة myApplet؛} / * أخيرًا ، علينا فقط إضافة وظيفة "main" ، والتي من المحتمل أن تكون هي نفسها في كل تطبيق صغير ، يتم إنشاء مثيل من التطبيق الصغير وإعادته إلى Cinnamon. * / // نقوم بإغلاق إرجاع الحلقة myApplet ؛

ننتقل إلى تحديد metadata.json

LP0ol8b

لقطة شاشة - 140314 - 21:11:34

"آخر تحرير": "1331990905" ، // الإصدار الأخير. "الوصف": "انقر على التطبيق الصغير لإظهار قائمة gtk المعرفة بشكل شخصي" ، // وصف التطبيق الصغير. "icon": "docky" ، // الرموز المستخدمة لوصف التطبيق الصغير. كمثال ، قم بتغيير اسم "docky" إلى "terminal" ، "folder". "uuid": "أسود" // مجلد يتم فيه تضمين ملف metadata.json الخاص بنا "الاسم": "قائمة gtk المخصصة" // اسم التطبيق الصغير.

ملاحظة: لتعيين أسماء جديدة ، راجع اسم أيقونات Gnome أو Cinnamon أو أي سمة رمز أخرى ، انتقل إلى عنوان أنظمة الملفات.

/usr/share/icons

صورة التطبيق الصغير الذي تم إنشاؤه

  lKxpdkS

تستخدم Qt و Gtk و Vala ولغات أخرى لإنشاء تطبيق صغير لـ Cinnamon أو Gnome

دعونا نرى موقع تطبيقنا الصغير للقرفة

يتم إعطاء موقع التطبيق الصغير الخاص بنا على العناوين التالية:

/.local/share/cinnamon/applets

س و

/usr/share/cinnamon/applets

الطالب الذي يذاكر كثيرا

تكوين لدينا الصغير

بيتا

ننتقل إلى تعريف applet.js 

كود

التطبيق الصغير.js

بدء تشغيل كود applet.js

لقطة شاشة - 140314 - 21:30:48

نهاية applet.js

الآن دعنا ننتقل لرؤية كود applet.js وشرح عباراته.

الكود المكتوب عمليا هو نفس المثال السابق المكتوب بجافا سكريبت.
تم تغيير الإشارة فقط ، والتي ستستدعي الملف القابل للتنفيذ التلقائي.

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.

بيتا

يمكننا أيضًا استخدام لغات البرمجة الأخرى التي تحتوي على روابط لـ Gtk مثل حالة PyGTK و Ruby Gtk و Perl Gtk وما إلى ذلك. والتي يمكن استخدامها باستخدام برنامج نصي لتنفيذ التعليمات البرمجية المكتوبة بهذه اللغات. المبدأ هو نفسه دائمًا لاستدعاء البرامج ، وإنشاء قائمة منبثقة ونافذة منبثقة وفقًا لاحتياجاتنا.

دعنا نرى رمز الملف القابل للتنفيذ التلقائي مكتوبًا باستخدام Qt

qt

ننتقل إلى تحديد metadata.json

LP0ol8b

مونغو

تمت كتابة الكود بنفس طريقة المثال السابق

صورة صغيرة تم إنشاؤها باستخدام Qt

كيو تي

صورة التطبيق الصغير الذي تم إنشاؤه باستخدام Gtk 3.10

فيما يلي مثال صغير لبرنامج صغير يستخدم ملفًا تنفيذيًا مكتوبًا بلغة Gtk ، وفي هذه الحالة نأخذ قائمة myGtkMenu المستخدمة في OpenBox.

إنها قائمة ذاتية التنفيذ.

ميغتك

قم بتنزيل البرنامج التعليمي والأمثلة


12 تعليقات ، اترك لك

اترك تعليقك

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

*

*

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

  1.   ايوريا قال

    مقال مثير للاهتمام ...

    1.    com.marianogaudix قال

      شكرا . أنا أتعلم القليل كل يوم.

  2.   داني قال

    جيد جدًا ، أحب ذلك ، أردت دائمًا معرفة كيفية صنع هذه الأنواع من التطبيقات الصغيرة

  3.   ملاك أرايا قال

    تصحيح بسيط. Gettext ليس خاصًا بـ Cinnamon كما هو مذكور في المقالة ، إنها مكتبة تجعل الترجمات التلقائية ممكنة ومن القوالب.

  4.   MSX قال

    برنامج تعليمي جيد جدًا وكل ذلك ولكن الشيء المهم الذي لم تضعه: رابط إلى ورق الحائط؟

    1.    com.marianogaudix قال

      قم بتنزيل خلفيات Linux Mint 16 Petra.
      الحزمة تسمى mint-Background-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   تسلا قال

    مقال مشوق جدا. الحقيقة هي أنني كنت أتساءل دائمًا كيف تم إنشاء هذه التطبيقات الصغيرة. ربما يتم تشجيعي على إنشاء برنامج صغير للاعب صغير لـ MPD أو شيء مشابه.

    شكرا لتقاسم!

  6.   ماتياس قال

    ممتاز ، أنا فقط أكتشف كيفية تعديل تطبيق nm-applet الخاص بالقرفة (مدير الشبكة) ، بحيث يتغير لونه عندما لا يكون لدي اتصال بالإنترنت ، (لدي بطاقة wifi) ، وهذا يساعدني على توجيه نفسي قليلا

  7.   ماتياسباتيرو 17 قال

    حسنًا ، يا ماريان ، لم أكن أعرف أنك تنشر هنا. مع تحياتي.

    1.    com.marianogaudix قال

      وأنت تمشي ، ماتوتي ... .. أتجول دائمًا حول هذه الأجزاء. في صحتك

  8.   لولبيمبو قال

    مادة جيدة.

  9.   هونوفان قال

    تم إلغاء تنشيط الملف غير موجود لانتهاك حقوق النشر.

    ما أعنيه هو أنه إذا كان لديك هناك ، هل يمكنك تحميله مرة أخرى ؟؟؟. من فضلك.

    شكرا لكم.