PyQt5 Development

إتقان QLabel في PyQt5: دليل شامل

Spread the love

إتقان PyQt5 QLabel: دليل شامل

تُعدّ عنصر واجهة المستخدم QLabel حجر الزاوية في تطوير واجهات المستخدم الرسومية في PyQt5، حيث يوفر طريقة بسيطة ومتعددة الاستخدامات لعرض النصوص والصور. يتعمق هذا البرنامج التعليمي في وظائفه، مع تقديم أمثلة عملية وأفضل الممارسات لرفع مهاراتك في PyQt5.

محتويات الجدول

  1. إنشاء وعرض عناصر واجهة المستخدم QLabel
  2. تنسيق النص: الخطوط، والألوان، وHTML
  3. محاذاة النص بدقة
  4. عرض الصور باستخدام QLabel
  5. لف الكلمات وتعديل حجم النص
  6. تقنيات متقدمة: الإشارات والمنافذ

1. إنشاء وعرض عناصر واجهة المستخدم QLabel

لنبدأ بإنشاء عنصر QLabel أساسي لعرض النص. يتضمن هذا إنشاء مثيل لفئة QLabel وتعيين عنصر واجهة المستخدم الرئيسي.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window)
label.show()
window.show()
sys.exit(app.exec_())

يقوم هذا المقطع من التعليمات البرمجية بإنشاء نافذة بسيطة مع عرض النص “Hello, PyQt5!”. يُعدّ QLabel عنصرًا تابعًا لـ QWidget، مما يضمن العرض الصحيح داخل النافذة.

2. تنسيق النص: الخطوط، والألوان، وHTML

إلى جانب عرض النصوص البسيطة، يمكنك تخصيص مظهر QLabel بشكل كبير. دعنا نستكشف تنسيق الخطوط، وتغييرات الألوان، واستخدام HTML للتنسيق الغني للنص.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QFont, QColor

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window) # نص غامق باستخدام HTML
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # لون النص أخضر

label.show()
window.show()
sys.exit(app.exec_())

يوضح هذا المثال تعيين خط محدد (Arial، حجم 14) ولون أخضر باستخدام أوراق الأنماط. لاحظ استخدام علامات HTML () للنص الغامق داخل نص العلامة.

3. محاذاة النص بدقة

تحكم في موضع النص داخل QLabel باستخدام طريقة setAlignment() وأعلام المحاذاة في Qt.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Centered Text", window)
label.setAlignment(Qt.AlignCenter)  # محاذاة مركزية

label.show()
window.show()
sys.exit(app.exec_())

يُحاذي هذا النص في المنتصف. استكشف الأعلام الأخرى مثل Qt.AlignRight، Qt.AlignTop، Qt.AlignBottom، ومجموعاتها للتحكم الدقيق.

4. عرض الصور باستخدام QLabel

لا يقتصر QLabel على النصوص فقط؛ بل يمكنه أيضًا عرض الصور. استخدم طريقة setPixmap() مع كائن QPixmap.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
pixmap = QPixmap('path/to/your/image.png')  # استبدل بمسار صورتك
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())

تذكر استبدال 'path/to/your/image.png' بالمسار الفعلي لملف صورتك.

5. لف الكلمات وتعديل حجم النص

بالنسبة لسلاسل النصوص الطويلة، قم بتمكين لف الكلمات لمنع النص من تجاوز حدود العلامة. يمكنك أيضًا ضبط سياسة حجم العلامة لتناسب النص.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("This is a long text string that needs word wrapping.", window)
label.setWordWrap(True)  # تمكين لف الكلمات
label.adjustSize()       # ضبط حجم العلامة ليناسب النص

label.show()
window.show()
sys.exit(app.exec_())

يقوم setWordWrap(True) بتنشيط لف الكلمات، ويضمن adjustSize() إعادة تغيير حجم العلامة تلقائيًا ليناسب النص الملفوف.

6. تقنيات متقدمة: الإشارات والمنافذ

يمكن لـ QLabel إرسال إشارات، مما يتيح التفاعل مع أجزاء أخرى من تطبيقك. على سبيل المثال، يمكنك توصيل إشارة بمنفذ لأداء إجراءات عند النقر على العلامة.

(تم حذف مثال استخدام mousePressEvent لإيجاز، لكنه موجود بسهولة في وثائق PyQt5)

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *