QGIS डेस्कटॉप ऐप में नया मेनू आइटम जोड़ना?


14

मुझे QGIS डेस्कटॉप (2.7.0) के शीर्ष स्तर के मेनू में नए मेनू आइटम को जोड़ने की आवश्यकता है; यानी यह "प्रोजेक्ट", "एडिट", "व्यू", "लेयर" आदि के समान स्तर पर होगा।

जहाँ तक मुझे पता है कि बहुत अच्छा तरीका है कि मेनू आइटम (सेटिंग्स-> कस्टमाइज़ेशन) प्लस को QgisInterface ( http://qgis.org/api/classQgisInterface.html ) का उपयोग करके कैसे छिपाया जा सकता है? मेरे प्लगइन कोड से addLayerMenu, addPluginToDatabaseMenu आदि) जोड़ें।

लेकिन मुझे शीर्ष स्तर पर नए मेनू आइटम की आवश्यकता है (यह ग्राहक से अनुरोध है)।

जवाबों:


22

आप इस तरह QGIS GUI में एक कस्टम मेनू जोड़ सकते हैं:

self.menu = QMenu( "&My tools", self.iface.mainWindow().menuBar() )
actions = self.iface.mainWindow().menuBar().actions()
lastAction = actions[-1]
self.iface.mainWindow().menuBar().insertMenu( lastAction, self.menu )

जैसा कि आप ऊपर दिए गए कोड स्निपेट में देख सकते हैं, आप मेनू बार से ठीक पहले मेनू बार की दूसरी स्थिति में एक मेनू जोड़ रहे हैं Help

यहाँ छवि विवरण दर्ज करें

फिर, आप अपने नए जोड़े गए मेनू में इस तरह से एक क्रिया जोड़ सकते हैं:

self.menu.addAction( self.action )

आप पहले से ही जानते होंगे, लेकिन इसे स्पष्ट करने के लिए, ऐसे जीयूआई कॉन्फ़िगरेशन को आमतौर initGui()पर आपके प्लगइन की विधि में स्थित होना चाहिए ।


1
अच्छा जवाब (सभी को स्क्रीनशॉट पसंद हैं!)। बस शुरुआत में QMenu आयात करने के लिए मत भूलना ...
mozzbozz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.