الجزء الثالث وثائق Arfedoracontrolcenter

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته


الجزء الثالث وثائق Arfedoracontrolcenter .



الجزء الأول https://arfedora.blogspot.com/2017/11/arfedoracontrolcenter.html.

الجزء الثاني https://arfedora.blogspot.com/2017/11/arfedoracontrolcenter_13.html .


نوع الإضافة الثاني post clicked .


هذا النوع من الإضافات  يحمل رقم صفر 0 ويتم تمهيده عند كل ضغط على الزر الخاص به أي سيتم إعادة تنفيذ ما بداخله عند كل ضغظ على المفتاح الخاص به .

1- إستدعيت كلاس BasePlugin سبق وكتبته فقط نستدعيه ,كما سبق وقلت ليس بالضرورة أن نعرف كل التفاضيل .

2-إستدعيت دالة تجلب مسار الصور الموجودة في مجلد icons بنائا على مكان مجلد icons نفسه كما سبق وذكرت ممكن أن يكون موجود بأكثر من مكان خاص وعام .

3-غيرت النوع لرقم صفر 0 .

4-عند الضغظ على زر الإضافة سيتم قراءة كلاس Plugin وتنفيذه , لهذا هذا السطر يجب نقله كما هو.

5-أيضا هذا السطر يجب نقله كما هو .

6-أيضا هذا السطر يجب نقله كما هو .

7-من خلال مكتبة Gtk الرسومية قمت بإنشاء كائن من كلاس Image وأعطيته مسار الصورة التي حددت إسمها ومسارها من خلال دالة get_icon_location التي سبق وتكلمت عنها .

8-هذا هو اهم شيء في الإضافة وهي _self._mainbox وهي box من نوع VBox ورثتها من الكلاس BasePlugin لهذا كل شيء نخطط له في الإضافة يجب أن نعمل له pack لهذه ال box .



صورة لكلاس BasePlugin توضح ما كنت أعنيه .

ال _mainbox_ كما ذكرت سلبقا هي box من نوع VBox وتستخدم من قبل الإضافات لإضافة العناصر داخلها من أزرار وصور و ...إلخ

ال _parent_ تمثل النافذة الأب للبرنامج ويمكن أيضا إستخدام هذا المتغير في الإضافات مثلا لعمل set_sensitive للنافذة .

ال _boxparent_ هي ال box التي ستحتوي _mainbox_ التي سبق وتكلمت عنها بالمناسبة هي من النوع Gtk.ListBoxRow .

ليس مهم ان تعرفو التفاصيل الدقيقة المهم ان تعرفو ماذا تمثل هذه الأشياء غالبا سيكون التعامل فقط مع _mainbox_ لإضافة العناصر الرسومية لها و _parent_ مثلا كما قلت في حال أردنا عمل set_sensitive للنافذة .



الأن ما هو متغير blockclose التي سبق وأجلت شرح عنه ؟

أولا سأقوم بنقل الإضافة لمكانها الصحيح والصور أيضا إذا لم تكن موجودة ثم أشغل البرنامج .

نلاحظ ظهور الزر كنا وضعنا له معلومات الصورة والإسم والتعريف ونلاحظ انه في المجموعة الصحيحة المذكورة في category التي هي System .


بعد الضغط عن الزر نصبح هنا نلاحظ هذه الصورة التي وضعت إسمها  بالطبع يجب أن نعد الأمر بشكل أفضل حتى لا تظهر الصورة هكذا لاكن لم أرد تعقيد الشرح أكثر ,بالمناسبة نلاحظ انني جهزت الأمر بشل تلقائي من دون تدخل منا  في حال كانت العناصر أكبر من حجم النافذة نلاحظ ممكن الإزاحة للأسفل والأعلى واليمين واليسار.




اﻷن بعد التعديل على الإضافة وضع True في blockclose نلاحظ عند الدخول للإضافة إختفاء الأزرار close minimize maximize ممكن إستخدام هذا الأمر لمنع غلق البرنامج أثناء عمل الإضافة .



ملاحظة في الإصدار الجديد من البرنامج أصبح يدعم الترجمة لهذا يجب وضع النص المراد ترجمته بين ()_ وإلزامي على الاقل أن نستخدمهم في button_label و category و title وmainbuttontooltip كما في الصورة في الأسفل.  



نوع الإضافة الثاني pre clicked .

هذا النوع من الإضافات  يحمل رقم واحد 1 ويتم تمهيدها لمرة واحد أي لن يتم إعادة تنفيذ ما بداخلها عند كل ضغظ على المفتاح الخاص بها وهذا هو الإختلاف الوحيد عن نوع post clicked .

فيديو في الأسفل يوضح الفرق نلاحظ في النوع صفر أي post clicked عند كل ضغطة على زر الإضافة سيتم تنفيذ دالة print أما في pre clicked سيتم تنفيذ دالة print مرة واحدة فقط أثناء قراءة البرنامج للإضافة .



تحديث بالنسبة لإضافة من نوع pre clicked يجب فقط إضافة destroy=False كما في الصورة في الأسفل .





أخيرا هذا رابط إضفافة example التي كنت أشرح عنها نلاحظ مسارها وإسمها ووضعت رقم إصدار لها أي v1.0 .
https://github.com/yucefsourani/arfedoraccframework/blob/master/plugins/example_v1.0.py

شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (4) أشياء تفعلها (5) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (14) برامج (47) برامج إسلامية (2) برنامج (18) برودباند (1) بعد (4) بعد التثبيت (5) بلوتوث (1) بناء (1) بيئة عمل (1) تثبيت (25) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (4) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) ريدهات (2) سكربت (2) شرح (10) صورة متحركة (1) فايرفوكس (1) فصل (1) فلاشة (3) فيدورا (26) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (3) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) وايرلس (1) وهمي (2) ويندوز (2) active (2) add (1) after (4) alias (1) andoid studio (1) android (1) android studio (1) Apache (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bluetooth (1) book (2) books (2) bootloader fix (1) broadband (1) broadcom (1) broadwayd (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (1) chsh (1) cisco (1) clion (1) clone (1) code.org (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) curlew (1) custom (2) dbus (1) dconf (1) dd (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) disks (1) dnf (12) do (4) docker (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (8) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) enable (2) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (38) fedora 25 alpha (1) fedora cloude (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) firefox (2) fix (8) flash mem (1) flash memory (2) flashplayer (1) flatpak (2) fpaste (1) free (1) freebsd (1) function (1) game (3) games (1) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (9) gnome disk (1) gnome shell (12) gnome terminal (1) gnome-disks (1) gnu (1) goldendict (1) google web designer (1) gradio (1) group (1) grub (5) grub2 (1) gtk (3) gtk+ (1) hack (2) hash (3) hdmi (3) hibernate (1) home (2) hosspot (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (28) installf (9) installing (4) intellij idea (1) iso (1) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kernel (1) kernel parameters (1) key (1) kickstarts (2) korora (1) krita (1) kvm (1) kvm switches (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) life is trange (1) linux (7) lv (1) lvm (2) mac (4) macros (1) mageia (1) MariaDB and PHP Lamp Server (1) mate terminal (1) mbr (1) md5sum (1) mirro (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (7) objdesktop (1) ojuba (2) oop (1) opensuse (1) opera (1) optirun (2) oracle (1) os.path (1) package (1) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) phpstorm (1) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) primary display (1) primus (1) primusrun (1) programs (3) put (1) pv (1) pycharm (2) pygobject (1) pygtk (1) python (31) qdbus (1) qemu (2) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (2) remix (1) remix os (1) repo (4) repofrompath (1) resize2fs (1) rhel (1) rpm (6) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) script (2) seconday display (1) self (1) send (1) settings (1) sha1256sym (1) share desktop (1) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) soundcloud (1) source code (1) spec (2) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) su (1) sudo (2) sudoers (1) swap (2) switch (1) Switchable Graphics (1) synergy (1) teamviewer (1) terminal (2) theme (4) things (4) to (5) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) vg (1) vgaوتبديل (1) vi (1) vim (1) vino (1) virtual (1) virtual box (1) virtualbox (2) vmware (3) vnc server (1) vokoscreen (1) webstorm (1) wifi (1) windows (3) windows-1256 (1) X Error: BadAccess (1) X Error: BadDrawable (1) yum (2) zeal (1) zealdocs (1)