يوفر هذا البرنامج التعليمي دليلاً شاملاً لإنشاء وتخصيص شريط القوائم في PyQt5. سنغطي العديد من الأمثلة، بدءًا من التنفيذ الأساسي إلى الميزات الأكثر تقدمًا، بما في ذلك إضافة الرموز وعناصر القائمة القابلة للتحديد. في النهاية، ستتمكن من إنشاء قوائم قوية وسهلة الاستخدام لتطبيقات PyQt5 الخاصة بك.
جدول المحتويات:
- إنشاء شريط قوائم أساسي
- إضافة الرموز إلى عناصر القائمة
- تنفيذ عناصر القائمة القابلة للتحديد
- إنشاء القوائم الفرعية
- إضافة اختصارات لوحة المفاتيح
- قوائم السياق
1. إنشاء شريط قوائم أساسي
يُوضح هذا القسم العملية الأساسية لإضافة شريط قوائم إلى تطبيق PyQt5 الخاص بك وملئه بالقوائم والإجراءات. يُنشئ هذا المثال قائمة “ملف” بسيطة مع خيارات “جديد” و “فتح” و “خروج”.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("مثال شريط قوائم PyQt5")
menubar = self.menuBar()
file_menu = menubar.addMenu("ملف")
new_action = QAction("جديد", self)
open_action = QAction("فتح", self)
exit_action = QAction("خروج", self)
file_menu.addAction(new_action)
file_menu.addAction(open_action)
file_menu.addSeparator()
file_menu.addAction(exit_action)
exit_action.triggered.connect(QApplication.instance().quit)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
2. إضافة الرموز إلى عناصر القائمة
يُحسّن إضافة الرموز تجربة المستخدم. يُوضح هذا القسم كيفية دمج الرموز في عناصر القائمة الخاصة بك.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
from PyQt5.QtGui import QIcon
# ... (فئة MainWindow من المثال السابق) ...
new_action.setIcon(QIcon("new.png")) # استبدل بمسار رمزك
open_action.setIcon(QIcon("open.png")) # استبدل بمسار رمزك
exit_action.setIcon(QIcon("exit.png")) # استبدل بمسار رمزك
# ... (بقية الكود من المثال السابق) ...
تذكر استبدال `”new.png”`، `”open.png”`، و`”exit.png”` بمسارات الملفات الفعلية لرموزك. تأكد من أن الرموز موجودة في نفس الدليل مثل البرنامج النصي الخاص بك بلغة Python أو قم بتوفير المسار الكامل.
3. تنفيذ عناصر القائمة القابلة للتحديد
تسمح عناصر القائمة القابلة للتحديد للمستخدمين بتبديل الخيارات تشغيلًا وإيقافًا. يُوضح هذا المثال إنشائها وإدارتها.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
# ... (فئة MainWindow من المثال السابق) ...
toolbar_action = QAction("إظهار شريط الأدوات", self, checkable=True)
toolbar_action.setChecked(True)
file_menu.addAction(toolbar_action)
toolbar_action.triggered.connect(self.toggle_toolbar)
def toggle_toolbar(self, checked):
print(f"رؤية شريط الأدوات: {checked}") # استبدل بمنطق شريط الأدوات الخاص بك
# ... (بقية الكود من المثال السابق) ...
4. إنشاء القوائم الفرعية
نظّم عناصر القائمة الخاصة بك منطقيًا باستخدام القوائم الفرعية.
# ... (ضمن __init__ لـ MainWindow) ...
edit_menu = menubar.addMenu("تحرير")
undo_action = QAction("تراجع", self)
redo_action = QAction("إعادة", self)
edit_menu.addAction(undo_action)
edit_menu.addAction(redo_action)
# ...
5. إضافة اختصارات لوحة المفاتيح
عزز إمكانية الاستخدام باستخدام اختصارات لوحة المفاتيح.
# ... (ضمن __init__ لـ MainWindow) ...
exit_action.setShortcut("Ctrl+Q")
# ...
6. قوائم السياق
نفّذ قوائم النقر بزر الماوس الأيمن.
# ... (ضمن __init__ لـ MainWindow) ...
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.show_context_menu)
def show_context_menu(self, pos):
menu = QMenu(self)
copy_action = QAction("نسخ", self)
paste_action = QAction("لصق", self)
menu.addAction(copy_action)
menu.addAction(paste_action)
menu.exec_(self.mapToGlobal(pos))
# ...
يوفر هذا البرنامج التعليمي الموسّع أساسًا أكثر اكتمالًا للعمل مع شريط القوائم في PyQt5. تذكر تثبيت PyQt5 باستخدام `pip install PyQt5`. يمكنك التوسع في هذه الأمثلة لإنشاء قوائم أكثر تعقيدًا وغنية بالمميزات لتطبيقاتك.