سنتعلم في الدرس تشغيل ملفات الـ .ui مباشرة في بايثون بدون تحويل.
في الدروس السابقة كنا نقوم بإنشاء واجهة باستخدام PyQt Designer ثم نحولها إلى كود بايثون عبر الأمر:
pyuic5 -x file.ui -o file.py
لكن أحيانًا قد نرغب باستخدام ملف .ui مباشرة داخل كود بايثون بدون الحاجة إلى تحويله، وهذا ممكن باستخدام مكتبة uic.
لماذا نستخدم هذه الطريقة؟
- توفر الوقت في المشاريع الكبيرة.
- إذا أردت تعديل الواجهة لاحقًا، لست بحاجة لإعادة التحويل كل مرة.
- تجعل الكود أكثر مرونة، خاصة في مرحلة التصميم والتجربة.
الخطوات
- أنشئ واجهة في Qt Designer تحتوي على:
- QLabel لكتابة "أدخل رسالتك".
- QLineEdit لإدخال النص.
- زر QPushButton بعنوان "عرض".
- QLabel فارغة لعرض النتيجة.
- احفظ الملف باسم:
direct_load.ui
الكود
الآن ننشئ ملف بايثون جديد ونكتب:
import sys
from PyQt5 import QtWidgets, uic
class MyForm(QtWidgets.QDialog):
def __init__(self):
super().__init__()
# تحميل ملف .ui مباشرة
uic.loadUi("direct_load.ui", self)
# ربط الزر مع الدالة
self.pushButton.clicked.connect(self.show_message)
def show_message(self):
text = self.lineEdit.text()
self.label_2.setText(f"لقد كتبت: {text}")
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyForm()
window.show()
sys.exit(app.exec_())
النتيجة
- عند تشغيل البرنامج ستظهر النافذة التي صممتها في Qt Designer مباشرة.
- إدخال نص في حقل QLineEdit ثم الضغط على الزر سيعرض النص في الـ QLabel الثاني.
التمرين
✍️ قم بإنشاء واجهة تحتوي على:
- حقل لإدخال اسم المستخدم.
- حقل لإدخال كلمة المرور (QLineEdit مع خيار Password).
- زر بعنوان "تسجيل الدخول".
- QLabel لعرض رسالة "تم تسجيل الدخول" أو "فشل تسجيل الدخول".
استخدم طريقة uic.loadUi لفتح ملف الواجهة مباشرة بدون تحويل.
🔜 في الدرس السادس سنتعلم كيف نضيف قوائم Menus وأشرطة الأدوات Toolbars باستخدام Qt Designer.