في عالم برمجة تطبيقات الكمبيوتر، تُصبح إمكانية إنشاء واجهة مستخدم رسومية فعّالة أمرًا حيويًا لتحسين تجربة المستخدم وجعل التطبيقات أكثر جاذبية.
تُعتبر Python لغة برمجية سهلة الاستخدام ومثالية لتحليل البيانات وتطوير الويب. ولكنها تُعد خيارًا رائعًا لتطوير واجهة المستخدم الرسومية لمُختلف التطبيقات أيضًا. تعمل كل من GTK+ و Glade على تبسيط عملية إنشاء تطبيقات بسيطة مُتعددة المنصات الأساسية. تحقق من طرق فعّالة لإيقاف وإنهاء أي تطبيق Python.
روابط سريعة
GTK+ و Glade Interface Designer لمُطوري لغة Python
تُعد GTK+ (GIMP Toolkit) و Glade Interface Designer مزيجًا رائعًا لمُطوري Python الذين يرغبون في إنشاء واجهات مستخدم رسومية بديهية ومُمتعة.
GTK+ عبارة عن مجموعة أدوات مُتعددة المنصات يُمكنك استخدامها لتطوير واجهة المستخدم الرسومية. وهي مُتوافقة مع مجموعة متنوعة من أنظمة التشغيل، بما في ذلك Linux و Windows و macOS.
بينما تُتيح لك Glade Interface Designer، وهي أداة مصاحبة لـ GTK+، تصميم واجهات المستخدم الرسومية دون الحاجة إلى كتابة تعليمات برمجية للتخطيط. يُمكنك استخدامها لإنشاء واجهة المستخدم الرسومية في بيئة WYSIWYG ببضع نقرات من خلال وظيفة السحب والإفلات البسيطة.
إعداد بيئة Python للتطوير باستخدام GTK+ و Glade
يُعد إعداد البيئة خطوة أولى مُهمة لضمان سير العمل بسلاسة وفعالية.
1. تثبيت Python
ابدأ بالتأكد من تثبيت Python على نظامك. سترى كود Python 3 في الأمثلة التي تم إنشاؤها في هذا المقال، حيث أنه يُوفر دعمًا وتكاملًا أفضل لـ GTK+ و Glade. بالنسبة لنظامي التشغيل Linux و macOS، عادةً ما يتم تثبيت Python مُسبقًا.
يمكن لمُستخدمي Windows تنزيل Python من موقع Python الرسمي.
2. تثبيت GTK+
يُمكنك تثبيت GTK+ باستخدام مُدير الحزم المُضمَّن.
بالنسبة لأنظمة Linux المُستندة إلى Ubuntu و Debian، استخدم:
sudo apt-get install libgtk-3-dev
بالنسبة لـ Fedora والتوزيعات المُشابهة:
sudo dnf install gtk3-devel
على macOS، باستخدام Homebrew:
brew install gtk+3
يُمكن لمستخدمي Windows تنزيل GTK+ من صفحة التنزيل الرسمية لـ GTK. ولكن إذا كان لديك MSYS2 مثبتًا، فيمكنك فتح سطر أوامر MSYS2 واستخدام هذا الأمر:
pacman -S mingw-w64-x86_64-python-gobject
3. تثبيت Glade
يُمكنك استخدام سطر الأوامر لتثبيت Glade.
بالنسبة لتوزيعات Linux المُستندة إلى Ubuntu و Debian:
sudo apt-get install glade
على Fedora:
sudo dnf install glade
يُمكن لمستخدمي macOS استخدام Homebrew:
brew install glade
يُمكن لمستخدمي Windows استخدام الأمر التالي مع MSYS2:
pacman -S mingw-w64-x86_64-glade
4. ربط Python بـ GTK+
قم بتثبيت PyGObject لدمج GTK+ مع Python. الأمر الذي ستستخدمه لهذا هو:
pip install PyGObject
إذا كان هناك خطأ مثل “لم يتم تشغيل Building wheel for pycairo (pyproject.toml)” أثناء تثبيت PyGObject، فستحتاج إلى تثبيت حزمة cairo أيضًا.
بالنسبة لتوزيعات Linux المُستندة إلى Ubuntu و Debian:
sudo apt-get install libcairo2-dev
بالنسبة لـ Fedora:
sudo yum install cairo-devel
على macOS:
brew install pygobject3
5. إعداد بيئة افتراضية (اختياري)
من المُمارسات الجيدة استخدام بيئة افتراضية لمشاريعك المُتعلقة بـ Python. هذا يعزل تبعيات مشروعك. قم بإنشاء وتنشيط بيئة افتراضية على Linux باستخدام هذه الأوامر الطرفية:
python -m venv myenv
source myenv/bin/activate
على Windows، يُمكنك استخدام:
python -m venv myenv
myenv\Scripts\activate
على macOS، للتأكد من أنَّ البيئة الافتراضية يُمكنها الوصول إلى الحزم التي تقوم بإعداد عمليات التثبيت، استخدم:
python -m venv --system-site-packages myenv
source myenv/bin/activate
6. التحقق من التثبيت
للتحقق من تثبيت GTK+ و Glade، قم بإنشاء برنامج نصي بسيط لـ Python يستورد GTK:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
print("GTK+ version:", Gtk.get_major_version(), Gtk.get_minor_version())
عند تشغيل هذا البرنامج النصي، فإنه سيتم إخراج إصدار GTK+ المُثبت. إذا سارت الأمور على ما يرام، تكون قد قمت بإعداد بيئة التطوير الخاصة بك.
إنشاء تطبيق واجهة مستخدم رسومية بسيط باستخدام Glade Interface Designer و Python
يُمكنك تصميم تطبيق واجهة المستخدم الرسومية الخاص بك في Glade Interface Designer وتصدير التخطيط كملف مشروع. يُمكنك بعد ذلك الوصول إلى ملف المشروع هذا من كود Python الخاص بك.
تصميم واجهة المستخدم الرسومية باستخدام Glade
تعمل واجهة السحب والإفلات في Glade على تسهيل التركيز على التصميم دون التورط في التعليمات البرمجية الأساسية. ابدأ تشغيل Glade من قائمة التطبيقات في نظامك أو من سطر الأوامر باستخدام هذا الأمر:
glade
يجب أن تُشاهد واجهة Glade حيث يُمكنك البدء في إنشاء تخطيط واجهة المستخدم الرسومية الذي يتوافق مع مشروعك.
يُوفر زر إنشاء مشروع جديد الموجود في الجزء العلوي عرض لوحة فارغة لتصميم واجهة المستخدم الرسومية من البداية. تُقدم Glade مجموعة واسعة من الأدوات في شريطه العلوي، بما في ذلك الأزرار ومدخلات النص والملصقات. اسحب هذه الأدوات إلى اللوحة الفارغة لبدء تصميم واجهة المستخدم الرسومية المُناسبة. يمكنك تغيير حجم الأدوات ووضعها وفقًا لاحتياجات تصميمك.
أولاً، حدد عنصر واجهة المستخدم GtkWindow من قائمة Toplevels:
في الصفحة العامة في الشريط الجانبي لـ Glade، سترى خيار المُعرِّف. هذا المعرف هو الاسم الفريد للأداة التي أضفتها. في هذا المثال، يُمكن تعيين مُعرِّف myMainWindow إلى GtkWindow التي أضفتها.
يُمكنك الآن إضافة عناصر واجهة المستخدم إلى النافذة الرئيسية التي قمت بإنشائها. انتقل إلى “الحاويات” في الشريط العلوي، وحدد أداة GtkBox، واسحبها إلى مساحة العمل لديك. ثم أعطها مُعرِّفًا، myMainBox.
بعد إضافة أدوات GtkBox، سترى خيارات متنوعة على يمين مساحة عملك خاصة بتلك الأداة. يُمكنك تعديل تصميمك بالكامل هنا دون كتابة أي كود.
بعد ذلك، أضف أداة التحكم إلى تصميمك. للقيام بذلك، انتقل إلى Control في الشريط العلوي، وحدد أداة GtkButton كمثال، واسحبها إلى أي مكان في GtkBox. أعطها مُعرِّفًا، myButton. إذا أردت، يُمكنك أيضًا تغيير نص الزر باستخدام علامة التبويب “عام” في اللوحة اليمنى.
GtkButton عبارة عن أداة قابلة للنقر، لذا يمكنك تحديد معالج Python لها وكتابة الكود المُناسب لاحقًا. انتقل إلى علامة التبويب “الإشارات” في القائمة الجانبية وحدد معالجًا للأداة القابلة للنقر. في هذا المثال، أطلق عليها on_button_clicked.
يُمكنك الآن حفظ تصميم واجهة المستخدم الرسومية كملف مشروع. احفظ الملف باسم myDesign.glade.
استخدام ملف تصميم Glade من كود Python
قم بإنشاء ملف app.py في نفس الدليل مثل ملف myDesign.glade الخاص بك. الصق الكود التالي في هذا الملف:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
from gi.repository import Gdk
class MyApp:
def __init__(self):
# Load the Glade file to construct the GUI
self.builder = Gtk.Builder()
self.builder.add_from_file("myDesign.glade")
# Retrieve the main window from Glade and set up the close event
self.window = self.builder.get_object("myMainWindow")
self.window.connect("destroy", Gtk.main_quit)
# Retrieve the button from Glade and connect the click event
self.button = self.builder.get_object("myButton")
self.button.connect("clicked", self.on_button_clicked)
# Variable to toggle the background color
self.color_toggle = False
def on_button_clicked(self, widget):
# Click the button and the background color will change
color = "#FF0000" if self.color_toggle else "#00FF00"
self.window.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse(color))
self.color_toggle = not self.color_toggle
def run(self):
self.window.show_all()
Gtk.main()
if __name__ == "__main__":
app = MyApp()
app.run()
سيؤدي هذا الكود إلى تغيير لون الخلفية في كل مرة تنقر فيها على الزر. لاحظ الاستدعاءات إلى self.builder.get_object() التي تُمرِّر معرفات عناصر واجهة المستخدم التي قمت بتعريفها في Glade.
قم بتشغيل برنامج Python النصي باستخدام هذا الأمر لرؤية النتيجة:
python3 app.py
مزايا استخدام GTK+ وGlade لتطوير واجهة المستخدم الرسومية لـ Python
يُوفر استخدام GTK+ وGlade لتطوير واجهة المستخدم الرسومية لـ Python فوائد واضحة. عادةً ما يستغرق إنشاء واجهة المستخدم الرسومية الكثير من الوقت والجهد. ولكن مع Glade Interface Designer، يُمكنك تسريع العملية. تُقدم Glade أيضًا مجموعة واسعة من الأدوات، كل منها سهل الاستخدام مثل الزر الموجود في المثال.
الميزة الرئيسية لـ Glade هي قدرتها على إبقاء تصميم واجهة المستخدم الرسومية مُنفصلاً عن الكود. وهذا يجعل صيانة واجهة المستخدم الرسومية وتحديثها أسهل. يؤدي هذا النهج إلى تعليمات برمجية أكثر وضوحًا وتنظيمًا، بما يتماشى مع ممارسات البرمجة الحديثة. يُمكنك الإطلاع الآن على ما هي مجموعة أدوات العمل المُستقل؟ إليك أين يُمكن العثور عليها.