أكثر

هل تريد إضافة عنصر قائمة جديد إلى تطبيق QGIS Desktop؟

هل تريد إضافة عنصر قائمة جديد إلى تطبيق QGIS Desktop؟


أحتاج إلى إضافة عنصر قائمة جديد إلى قائمة المستوى الأعلى لـ QGIS Desktop (2.7.0) ؛ بمعنى آخر. يجب أن يكون على نفس مستوى "مشروع" و "تعديل" و "عرض" و "طبقة" وما إلى ذلك.

بقدر ما أعرف ، هناك طريقة لطيفة جدًا لإخفاء عناصر القائمة (الإعدادات-> التخصيص) بالإضافة إلى استخدام QgisInterface (http://qgis.org/api/classQgisInterface.html) يمكنني إضافة عناصر جديدة إلى القوائم المحددة بالفعل في QGIS ( addLayerMenu، addPluginToDatabaseMenu وغيرها) من كود البرنامج المساعد الخاص بي.

لكني أحتاج إلى عنصر قائمة جديد في الطبقة العليا (هذا مطلوب من العميل).


يمكنك إضافة قائمة مخصصة إلى QGIS GUI بهذه الطريقة:

self.menu = QMenu ("& أدواتي"، self.iface.mainWindow (). menuBar ()) الإجراءات = self.iface.mainWindow (). menuBar (). Actions () lastAction = الإجراءات [-1] self.iface .mainWindow (). menuBar (). insertMenu (lastAction، self.menu)

كما ترى في مقتطف الشفرة أعلاه ، فأنت تضيف قائمة إلى الموضع الثاني إلى الموضع الأخير من شريط القائمة ، مباشرة قبلمساعدةقائمة.

بعد ذلك ، يمكنك إضافة إجراء إلى القائمة المضافة حديثًا بهذه الطريقة:

self.menu.addAction (العمل الذاتي)

ربما تعرف بالفعل ، ولكن فقط لتوضيح ذلك ، يجب أن يكون تكوين واجهة المستخدم الرسومية هذا عادةً موجودًا في ملفinitGui ()طريقة البرنامج المساعد الخاص بك.