كيفية إنشاء واجهة رسومية باستخدام PyQt5؟

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو PyQt5 وما هي استخداماته

PyQt5 هو مجموعة من الوصلات البرمجية للغة Python لمكتبة Qt. تُعتبر هذه المكتبة من أشهر الأدوات لإنشاء واجهات المستخدم الرسومية عبر المنصات المختلفة. باستخدام PyQt5، يمكن للمطورين بناء تطبيقات سطح مكتب احترافية بتصميم حديث ووظائف غنية.

الميزات الأساسية لـ PyQt5

يوفر PyQt5 للمطورين مجموعة واسعة من الإمكانيات:

  • مجموعة كبيرة من العناصر الجاهزة عبر وحدة QtWidgets
  • دعم العمل مع النوافذ والأزرار وحقول الإدخال والقوائم
  • تطبيق نظام الإشارات والفتحات للبرمجة الموجهة بالأحداث
  • التكامل مع العناصر الرسومية عبر QGraphicsView
  • إمكانية تخصيص الواجهات باستخدام أنماط CSS
  • دعم أنظمة تشغيل متعددة

تثبيت مكتبة PyQt5

لتثبيت PyQt5، استخدم مدير الحزم pip:

pip install PyQt5

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

كل تطبيق PyQt5 يبدأ بإنشاء كائن QApplication. هذا هو الكائن الرئيسي الذي يدير جميع النوافذ والأحداث. يتم إنشاء النافذة الرئيسية باستخدام QWidget.

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("نافذة بسيطة")
window.resize(300, 200)
window.show()
sys.exit(app.exec_())

QApplication هو مكون إلزامي لأي تطبيق واجهة رسومية في PyQt5. فهو يعالج أحداث النظام ويدير دورة حياة التطبيق.

العمل مع العناصر الأساسية

QLineEdit - حقل إدخال النص

QLineEdit هو حقل إدخال نصي أحادي السطر. يُستخدم هذا العنصر على نطاق واسع للحصول على إدخال المستخدم.

from PyQt5.QtWidgets import QLineEdit, QVBoxLayout, QPushButton

window = QWidget()
window.setWindowTitle("مثال QLineEdit")

layout = QVBoxLayout()

line_edit = QLineEdit()
line_edit.setPlaceholderText("أدخل اسمك")

button = QPushButton("إرسال")

def on_click():
    print(f"مرحبًا، {line_edit.text()}!")

button.clicked.connect(on_click)

layout.addWidget(line_edit)
layout.addWidget(button)
window.setLayout(layout)
window.show()

يدعم حقل الإدخال عدة طرق للتعامل مع النص:

  • setText() - تعيين النص برمجيًا
  • text() - الحصول على النص المُدخل
  • setPlaceholderText() - تعيين نص تلميحي
  • setMaxLength() - تحديد الحد الأقصى لطول الإدخال

QComboBox - إنشاء القوائم المنسدلة

QComboBox يتيح للمستخدم اختيار خيار واحد من قائمة مقترحة.

from PyQt5.QtWidgets import QComboBox

combo = QComboBox()
combo.addItems(["اختر خيارًا", "Python", "C++", "JavaScript"])

def on_selection_change(value):
    print(f"لقد اخترت: {value}")

combo.currentTextChanged.connect(on_selection_change)

layout.addWidget(combo)

يوفر QComboBox عدة طرق مفيدة:

  • addItem() - إضافة عنصر واحد
  • addItems() - إضافة قائمة من العناصر
  • currentText() - الحصول على النص المحدد
  • currentIndex() - الحصول على فهرس العنصر المحدد
  • clear() - مسح جميع العناصر

QCheckBox - العمل مع مربعات الاختيار والإشارات

QCheckBox يتيح للمستخدم تحديد أو إلغاء تحديد خيار.

from PyQt5.QtWidgets import QCheckBox

checkbox = QCheckBox("أوافق على الشروط")

def on_checkbox_state(state):
    if state:
        print("تم تحديد المربع")
    else:
        print("تم إلغاء تحديد المربع")

checkb                

المدونات

توصيات الكتب