تقنيات نور التعليمية تقنيات نور التعليمية

آخر الأخبار

جاري التحميل ...

🟢 الدرس الثامن: استخدام Checkboxes و Radio Buttons في PyQt Designer

 استخدام Checkboxes و Radio Buttons في PyQt Designer.

في هذا الدرس سنتعلم:

  • كيفية إضافة مربعات اختيار (QCheckBox).
  • كيفية إضافة أزرار التحديد (QRadioButton).
  • كيفية ربط هذه العناصر بالأحداث في بايثون لقراءة قيمها والتفاعل معها.

Checkboxes و Radio Buttons

📌 1. إنشاء الواجهة في Qt Designer

1- افتح Qt Designer وأنشئ نافذة جديدة (Main Window).

2- أضف العناصر التالية:

  • QLabel بعنوان: "اختر اهتماماتك:"
  • 3 Checkboxes بعناوين: "برمجة" – "تصميم" – "شبكات".
  • QLabel بعنوان: "اختر الجنس:"
  • 2 Radio Buttons: "ذكر" – "أنثى".
  • زر QPushButton بعنوان "عرض النتائج".
  • QLabel فارغة لعرض النتيجة (نسميها: labelResult).

3- احفظ الملف باسم:

checkbox_radiobutton.ui

📌 2. كتابة الكود

import sys
from PyQt5 import QtWidgets, uic

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("checkbox_radiobutton.ui", self)

        # ربط الزر مع الدالة
        self.pushButton.clicked.connect(self.show_result)

    def show_result(self):
        # جمع الاهتمامات من الـ Checkboxes
        interests = []
        if self.checkBox.isChecked():
            interests.append("برمجة")
        if self.checkBox_2.isChecked():
            interests.append("تصميم")
        if self.checkBox_3.isChecked():
            interests.append("شبكات")

        # تحديد الجنس من Radio Buttons
        gender = ""
        if self.radioButton.isChecked():
            gender = "ذكر"
        elif self.radioButton_2.isChecked():
            gender = "أنثى"

        # عرض النتيجة
        result_text = f"الاهتمامات: {', '.join(interests) if interests else 'لا شيء'}\nالجنس: {gender if gender else 'غير محدد'}"
        self.labelResult.setText(result_text)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

🎯 النتيجة

  • عند تشغيل البرنامج وتحديد بعض الـ Checkboxes (مثلاً: برمجة + شبكات) واختيار أحد الـ Radio Buttons (مثلاً: ذكر)، ثم الضغط على زر "عرض النتائج"، ستظهر النتيجة داخل الـ QLabel في الأسفل.

✍️ تمرين لك

قم بإنشاء واجهة تحتوي على:

  • 4 Checkboxes تمثل لغات برمجة (Python – Java – C++ – JavaScript).
  • 3 Radio Buttons لتمثيل مستوى الخبرة (مبتدئ – متوسط – متقدم).
  • زر "إرسال".
  • عند الضغط على الزر، يتم عرض النتيجة في QLabel يوضح اللغات المختارة ومستوى الخبرة.

📌 الحل

1. تصميم الواجهة في Qt Designer

أنشئ نافذة جديدة (Main Window).

أضف:

  • 4 Checkboxes بعناوين: Python – Java – C++ – JavaScript.
  • 3 Radio Buttons بعناوين: مبتدئ – متوسط – متقدم.
  • زر QPushButton بعنوان "إرسال".
  • QLabel فارغة لعرض النتيجة (نسميها: labelResult).

ثم احفظ الملف باسم:
checkbox_exercise.ui

2. كود بايثون

import sys
from PyQt5 import QtWidgets, uic

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("checkbox_exercise.ui", self)

        # ربط الزر مع الدالة
        self.pushButton.clicked.connect(self.show_result)

    def show_result(self):
        # جمع اللغات المختارة
        languages = []
        if self.checkBox.isChecked():
            languages.append("Python")
        if self.checkBox_2.isChecked():
            languages.append("Java")
        if self.checkBox_3.isChecked():
            languages.append("C++")
        if self.checkBox_4.isChecked():
            languages.append("JavaScript")

        # تحديد مستوى الخبرة
        level = ""
        if self.radioButton.isChecked():
            level = "مبتدئ"
        elif self.radioButton_2.isChecked():
            level = "متوسط"
        elif self.radioButton_3.isChecked():
            level = "متقدم"

        # تجهيز النص النهائي
        if not languages:
            lang_text = "لم يتم اختيار أي لغة"
        else:
            lang_text = "، ".join(languages)

        if not level:
            level_text = "لم يتم اختيار مستوى"
        else:
            level_text = level

        result_text = f"اللغات المختارة: {lang_text}\nمستوى الخبرة: {level_text}"
        self.labelResult.setText(result_text)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

🎯 النتيجة

  • عند تشغيل البرنامج، يمكن للمستخدم اختيار لغات برمجة متعددة من الـ Checkboxes.
  • يختار مستوى خبرة واحد فقط من الـ Radio Buttons.
  • عند الضغط على زر "إرسال"، تظهر النتيجة داخل الـ QLabel.


🔜 في الدرس التاسع سنتعلم كيف نستخدم QComboBox (القائمة المنسدلة) ونربطها بالأحداث.

عن الكاتب

Tamer Ahmed

التعليقات


اتصل بنا

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

جميع الحقوق محفوظة

تقنيات نور التعليمية