Mission Carthage

الرئيسية › الدروس › الواجهات الرسومية بـ Qt

الواجهات الرسومية Qt Designer وPyQt5: الباك التطبيقي

الفصل 19 · باك رياضيات وعلوم وتقنية, 3 علوم الإعلامية, باك علوم الإعلامية

نافذة مرسومة بـ Qt Designer، وبرنامج Python يتفاعل مع الكليكات: قلب الباك التطبيقي.

دروس هذا الفصل

  1. أول نافذة متاعي
  2. الحساب ومراقبة الإدخال
  3. أزرار radio، cases à cocher، وقوائم منسدلة
  4. تطليع قائمة نتائج

الدرس 19.1 : أول نافذة متاعي

10 دقيقة

الـ interface graphique تعوّض input() و print() بـ نافذة: خانات نص باش نكتبو، أزرار باش نعملو، و labels باش نطلّعو النتائج. نرسموها بـ Qt Designer بالـ glisser-déposer، وبعد نسجّلوها في فيشي interface.ui.

البرمجة بالأحداث

البرنامج ما يتخدمش من فوق لتحت مرّة وحدة: يستنّى المستعمل يكليكي. نربطو الـ signal clicked متاع زر بـ fonction: fenetre.btnSaluer.clicked.connect(saluer). في كل كليك، الـ fonction saluer تتخدم.

انتبه : في connect(saluer)، نعطيو اسم الـ fonction، من غير قوسين. بـ connect(saluer())، الـ fonction تتخدم ديراكت، قبل أي كليك.

بـ Python

النافذة فيها خانة txtNom، زر btnSaluer و label lblMessage. شغّلها، اكتب اسمك وانزل على الزر.

from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication

def saluer():
    nom = fenetre.txtNom.text()
    fenetre.lblMessage.setText("Bonjour " + nom + " !")

app = QApplication([])
fenetre = loadUi("interface.ui")
fenetre.show()
fenetre.btnSaluer.clicked.connect(saluer)
app.exec_()

الدرس 19.2 : الحساب ومراقبة الإدخال

11 دقيقة

اللي يكتبو المستعمل ديما chaîne. قبل ما نحسبو، نحوّلوها بـ int(…) ولا float(…). أما كان الخانة فارغة ولا فيها حروف، التحويل يعمل غلطة: لازم نراقبو الإدخال ونطلّعو message.

نصيحة : زر ثاني « Effacer » ياسر يتطلب: الـ fonction متاعو تنادي .clear() على كل خانة وعلى label النتيجة.

بـ Python

معدّل زوز نقاط، مع message كان نقطة ناقصة. جرّب وخلّي خانة فارغة.

from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication

def moyenne():
    a = fenetre.txtN1.text()
    b = fenetre.txtN2.text()
    if a == "" or b == "":
        fenetre.lblRes.setText("Remplir les deux notes")
    else:
        m = (float(a) + float(b)) / 2
        fenetre.lblRes.setText("Moyenne : " + str(m))

def effacer():
    fenetre.txtN1.clear()
    fenetre.txtN2.clear()
    fenetre.lblRes.clear()

app = QApplication([])
fenetre = loadUi("interface.ui")
fenetre.show()
fenetre.btnMoyenne.clicked.connect(moyenne)
fenetre.btnEffacer.clicked.connect(effacer)
app.exec_()

الدرس 19.3 : أزرار radio، cases à cocher، وقوائم منسدلة

11 دقيقة

في علوم الإعلامية، الواجهة فيها زادة اختيارات:

نصيحة : أزرار الـ radio متاع نفس المجموعة ما يتلمّوش: كي تختار واحد الأخرين يتنحّاو.

بـ Python

كوموند بيتزا: الحجم يحدّد السوم، والفرماج الزايد يزيد 2 دينار.

from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication

def prix():
    if fenetre.rbGrande.isChecked():
        p = 14
    else:
        p = 8
    if fenetre.chkFromage.isChecked():
        p = p + 2
    fenetre.lblPrix.setText("À payer : " + str(p) + " DT")

app = QApplication([])
fenetre = loadUi("interface.ui")
fenetre.show()
fenetre.btnPrix.clicked.connect(prix)
app.exec_()

الدرس 19.4 : تطليع قائمة نتائج

10 دقيقة

كي تكون النتيجة قائمة (قواسم عدد، التلاميذ الناجحين…)، نطلّعوها في QListWidget: سطر لكل عنصر. هذا في برنامج باك علوم الإعلامية.

انتبه : addItem تستنّى chaîne: اكتب addItem(str(d)) لعدد.

بـ Python

مضاعفات n حتى 50 يظهرو في القائمة، وعددهم في الـ label.

from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication

def multiples():
    n = int(fenetre.txtN.text())
    fenetre.listeRes.clear()
    k = n
    while k <= 50:
        fenetre.listeRes.addItem(str(k))
        k = k + n
    fenetre.lblNb.setText(str(fenetre.listeRes.count()) + " multiples")

app = QApplication([])
fenetre = loadUi("interface.ui")
fenetre.show()
fenetre.btnMultiples.clicked.connect(multiples)
app.exec_()

تدرّب مجانًا

كل درس فيه 3 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.

افتح الفصل في Mission Carthage جرّب في الكومبيلاتور أونلاين

← الفصل اللي قبل : التسجيلات (Enregistrements) · الفصل اللي بعد : التقريب والتحسين →

كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة

الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.