📌 ما هو QRadioButton؟
- أزرار الاختيار (Radio Buttons) تسمح للمستخدم باختيار خيار واحد فقط من مجموعة من الخيارات.
- إذا اخترت زر، يتم إلغاء تحديد الآخر تلقائيًا (في نفس المجموعة).
- تُستخدم بكثرة في النماذج والاستبيانات (مثلاً: ذكر / أنثى – نعم / لا).
✨ الكود الأساسي:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton, QLabel
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("مثال QRadioButton")
self.setGeometry(100, 100, 300, 200)
layout = QVBoxLayout()
# إنشاء أزرار الاختيار
self.radio1 = QRadioButton("ذكر")
self.radio2 = QRadioButton("أنثى")
# إنشاء تسمية لعرض النتيجة
self.label = QLabel("اختر جنسًا")
# ربط الإشارة مع الدالة
self.radio1.toggled.connect(self.update_label)
self.radio2.toggled.connect(self.update_label)
# إضافة العناصر إلى الواجهة
layout.addWidget(self.radio1)
layout.addWidget(self.radio2)
layout.addWidget(self.label)
self.setLayout(layout)
def update_label(self):
if self.radio1.isChecked():
self.label.setText("تم اختيار: ذكر")
elif self.radio2.isChecked():
self.label.setText("تم اختيار: أنثى")
# تشغيل التطبيق
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
📊 شرح الكود:
QRadioButton("ذكر") → زر اختيار مكتوب عليه "ذكر".
isChecked() → للتحقق إذا كان الزر محددًا أم لا.
toggled.connect() → يربط تغيير حالة الزر مع دالة محددة.
- عند اختيار "ذكر" → التسمية تعرض "تم اختيار: ذكر".
- عند اختيار "أنثى" → التسمية تعرض "تم اختيار: أنثى".
📝 ملاحظات هامة:
- إذا وضعت أزرارًا متعددة داخل نفس الـ Layout → المستخدم يستطيع اختيار زر واحد فقط.
- يمكن استخدام QButtonGroup لوضع أزرار في مجموعة محددة (مفيد إذا لديك أكثر من مجموعة أزرار).
setChecked(True) → لجعل زر معين محدد بشكل افتراضي.
📌 ملخص سريع:
- QRadioButton → لاختيار خيار واحد من بين عدة خيارات.
isChecked() → لمعرفة الزر المختار.
toggled → للإشارة عند تغيير الاختيار.
- يمكن تجميع الأزرار باستخدام QButtonGroup.