كيفية إنشاء تطبيقات سطح المكتب باستخدام PySide في Python

تمت الكتابة بواسطة: adel

تارخ آخر تحديث: 21 نوفمبر 2024

محتوى المقال

كيفية إنشاء تطبيقات سطح المكتب باستخدام PySide في Python

تعد مكتبة PySide إحدى الأدوات القوية لإنشاء تطبيقات سطح المكتب بواجهة رسومية في Python. توفر PySide مجموعة من الأدوات التي تتيح لك بناء واجهات مستخدم رسومية (GUI) غنية ومرنة. في هذا المقال، سنستعرض كيفية البدء مع PySide لإنشاء تطبيقات سطح المكتب، بالإضافة إلى مثال عملي لإنشاء تطبيق بسيط.

ما هي مكتبة PySide؟

PySide هي مكتبة Python تربط بين لغة البرمجة Python وإطار العمل Qt، الذي يُستخدم لإنشاء تطبيقات بواجهات رسومية. تُعرف PySide أيضًا باسم "Qt for Python" وتتيح للمطورين استخدام Qt في Python لإنشاء تطبيقات سطح المكتب عبر منصات متعددة مثل Windows، macOS، وLinux.

تثبيت مكتبة PySide

قبل أن نبدأ في إنشاء تطبيق سطح المكتب، نحتاج أولاً إلى تثبيت مكتبة PySide6 (أحدث إصدار من المكتبة). يمكنك تثبيت PySide6 باستخدام pip:

pip install PySide6

إنشاء نافذة تطبيق بسيطة

بعد تثبيت PySide6، يمكننا الآن إنشاء نافذة تطبيق بسيطة. دعونا نبدأ بإنشاء تطبيق يعرض نافذة فارغة.

إنشاء تطبيق بسيط

لإنشاء تطبيق بسيط، نحتاج إلى استيراد بعض المكونات الأساسية من PySide6 وإنشاء كائنات التطبيق والنافذة.

from PySide6.QtWidgets import QApplication, QMainWindow

import sys

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        # تعيين عنوان النافذة
        self.setWindowTitle("تطبيقي الأول")

def main():
    # إنشاء التطبيق
    app = QApplication(sys.argv)

    # إنشاء النافذة الرئيسية
    window = MainWindow()
    window.show()

    # تشغيل التطبيق
    app.exec()

if __name__ == "__main__":
    main()

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

إضافة عناصر واجهة المستخدم (Widgets)

لجعل التطبيق أكثر تفاعلية، نحتاج إلى إضافة عناصر واجهة المستخدم (widgets) مثل الأزرار، الحقول النصية، والقوائم. دعونا نضيف بعض هذه العناصر إلى النافذة.

إضافة زر إلى النافذة

لإضافة زر إلى النافذة، يمكننا استخدام QPushButton وتعيينه في النافذة الرئيسية:

from PySide6.QtWidgets import QPushButton, QVBoxLayout, QWidget

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("تطبيقي الأول")

        # إنشاء زر
        button = QPushButton("اضغطني")

        # إنشاء تخطيط وإضافة الزر إليه
        layout = QVBoxLayout()
        layout.addWidget(button)

        # إنشاء عنصر مركزي وإضافة التخطيط إليه
        central_widget = QWidget()
        central_widget.setLayout(layout)

        # تعيين العنصر المركزي للنافذة
        self.setCentralWidget(central_widget)

في هذا المثال، قمنا بإضافة زر إلى النافذة بعنوان "اضغطني". استخدمنا QVBoxLayout لترتيب العناصر عموديًا داخل النافذة.

التفاعل مع عناصر واجهة المستخدم

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

ربط الإشارات (Signals) بالأفعال (Slots)

في PySide، يتم التعامل مع التفاعلات باستخدام مفهوم الإشارات (signals) والأفعال (slots). يمكن ربط إشارات معينة (مثل الضغط على زر) بأفعال معينة (مثل استدعاء وظيفة).

from PySide6.QtCore import Slot

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("تطبيقي الأول")

        # إنشاء زر وربطه بوظيفة
        button = QPushButton("اضغطني")
        button.clicked.connect(self.on_button_clicked)

        # إعداد التخطيط والنافذة
        layout = QVBoxLayout()
        layout.addWidget(button)

        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

    # تعريف الفعل (Slot) المرتبط بالزر
    @Slot()
    def on_button_clicked(self):
        print("تم الضغط على الزر!")

في هذا المثال، قمنا بربط حدث الضغط على الزر بوظيفة on_button_clicked التي تقوم بطباعة رسالة إلى وحدة التحكم.

إضافة عناصر أخرى إلى واجهة المستخدم

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

إضافة حقل نصي

لإضافة حقل نصي إلى النافذة، يمكنك استخدام QLineEdit:

from PySide6.QtWidgets import QLineEdit

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("تطبيقي الأول")

        # إنشاء زر وحقل نصي
        button = QPushButton("اضغطني")
        button.clicked.connect(self.on_button_clicked)

        self.input_field = QLineEdit()

        # إعداد التخطيط والنافذة
        layout = QVBoxLayout()
        layout.addWidget(self.input_field)
        layout.addWidget(button)

        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

    # تعريف الفعل (Slot) المرتبط بالزر
    @Slot()
    def on_button_clicked(self):
        print("تم إدخال:", self.input_field.text())

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

خاتمة

تعتبر مكتبة PySide أداة قوية لإنشاء تطبيقات سطح المكتب بواجهة رسومية في Python. من خلال هذا المقال، تعرفنا على كيفية إنشاء نافذة تطبيق بسيطة، إضافة عناصر واجهة المستخدم (widgets)، وربط الأحداث بالأفعال لجعل التطبيق تفاعليًا. يمكنك الآن استخدام هذه الأدوات لبناء تطبيقات سطح المكتب الخاصة بك باستخدام Python وPySide.

طور مهاراتك: مقالات يجب قراءتها في البرمجة