يستكشف هذا البرنامج التعليمي عنصر واجهة المستخدم متعدد الاستخدامات QCheckBox
ضمن PyQt5، مع توضيح إنشائه والطرق المختلفة لإدارة حالته. سنغطي التنفيذ الأساسي، ومعالجة الأحداث، وأفضل الممارسات لدمج مربعات الاختيار في تطبيقات PyQt5 الخاصة بك.
جدول المحتويات
- إنشاء مربعات الاختيار
- معالجة تغييرات الحالة باستخدام الإشارات والفتحات
- معالجة الأحداث المتقدمة
- التطبيقات العملية وأفضل الممارسات
إنشاء مربعات الاختيار
لنبدأ بإنشاء مربع اختيار بسيط. يوضح هذا المثال كيفية إضافة مربع اختيار إلى نافذة و تعيين حالته الأولية.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QCheckBox, QVBoxLayout
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("مثال مربع اختيار PyQt5")
checkbox = QCheckBox("تمكين الميزة")
checkbox.setChecked(True) # تعيين الحالة الأولية إلى مُختار
layout = QVBoxLayout()
layout.addWidget(checkbox)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
يقوم هذا الكود بإنشاء مربع اختيار مُسمى “تمكين الميزة” ويُعيّن حالته الأولية إلى مُختار. ثم يتم إضافة مربع الاختيار إلى تخطيط عمودي و عرضه في النافذة.
معالجة تغييرات الحالة باستخدام الإشارات والفتحات
الطريقة الأكثر شيوعًا للاستجابة لتغييرات حالة مربع الاختيار هي استخدام إشارة stateChanged
وربطها بفتحة (دالة). هذا هو النهج المُوصى به لبساطته وسهولة قراءته.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QCheckBox, QVBoxLayout
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("تغييرات حالة مربع اختيار PyQt5")
checkbox = QCheckBox("إظهار التفاصيل")
label = QLabel("التفاصيل مخفية")
layout = QVBoxLayout()
layout.addWidget(checkbox)
layout.addWidget(label)
window.setLayout(layout)
def update_label(state):
if state == 2: # مُختار
label.setText("التفاصيل ظاهرة")
else:
label.setText("التفاصيل مخفية")
checkbox.stateChanged.connect(update_label)
window.show()
sys.exit(app.exec_())
هنا، يتم ربط دالة update_label
بإشارة stateChanged
. تُصدر الإشارة عددًا صحيحًا يمثل الحالة (0: غير مُختار، 2: مُختار، 1: مُختار جزئيًا لمربعات الاختيار ثلاثية الحالة). تقوم الدالة بتحديث تسمية بناءً على هذه الحالة.
معالجة الأحداث المتقدمة
للسيناريوهات الأكثر تعقيدًا أو عندما تكون هناك حاجة إلى تحكم دقيق، يمكنك استخدام معالجة الأحداث مباشرة. على الرغم من أنها أقل إيجازًا، إلا أن هذه الطريقة توفر مرونة أكبر.
(ملاحظة: معالجة الأحداث المباشرة باستخدام طرق event
أقل تفضيلًا بشكل عام لتغييرات حالة مربع الاختيار في PyQt مقارنةً باستخدام الإشارات والفتحات. المثال السابق باستخدام الإشارات والفتحات هو النهج الأنظف والأكثر توافقًا مع بيثون.)
التطبيقات العملية وأفضل الممارسات
تُعد مربعات الاختيار قيّمة لإنشاء واجهات مستخدم تفاعلية. فهي تسمح للمستخدمين بإجراء عمليات اختيار، وتبديل الخيارات، والتحكم في سلوك التطبيق. فيما يلي بعض أفضل الممارسات:
- التسمية الواضحة: قم دائمًا بتوفير تسميات واضحة وموجزة لمربعات الاختيار الخاصة بك لتجنب الغموض.
- التجميع المنطقي: قم بتجميع مربعات الاختيار ذات الصلة معًا باستخدام التخطيطات لتحسين التنظيم.
- استمرار الحالة: إذا كان ذلك مناسبًا، قم بحفظ واستعادة حالات مربعات الاختيار للحفاظ على تفضيلات المستخدم عبر الجلسات (مثل استخدام ملفات التكوين).
- إمكانية الوصول: تأكد من إمكانية وصول المستخدمين ذوي الإعاقات إلى مربعات الاختيار الخاصة بك باتباع إرشادات إمكانية الوصول.
يوفر هذا البرنامج التعليمي أساسًا متينًا لاستخدام عناصر واجهة المستخدم QCheckBox
في تطبيقات PyQt5 الخاصة بك. تذكر الرجوع إلى وثائق PyQt5 الرسمية لمزيد من الميزات المتقدمة والمعلومات التفصيلية.