Menambahkan item menu baru ke aplikasi QGIS Desktop?


14

Saya perlu menambahkan item menu baru ke menu level atas QGIS Desktop (2.7.0); Yaitu harus pada tingkat yang sama dengan "Proyek", "Edit", "View", "Layer" dll.

Sejauh yang saya tahu ada cara yang cukup bagus bagaimana menyembunyikan item menu (Pengaturan-> Kustomisasi) Plus menggunakan QgisInterface ( http://qgis.org/api/classQgisInterface.html ) Saya dapat menambahkan item baru ke Menu yang sudah didefinisikan dalam QGIS ( addLayerMenu, addPluginToDatabaseMenu dll) dari kode plugin saya.

Tapi saya perlu item Menu baru di lapisan atas (ini req dari pelanggan).

Jawaban:


22

Anda dapat menambahkan menu khusus ke GUI QGIS dengan cara ini:

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 )

Seperti yang dapat Anda lihat dalam cuplikan kode di atas, Anda menambahkan menu ke posisi kedua hingga terakhir dari bilah menu, tepat sebelum Helpmenu.

masukkan deskripsi gambar di sini

Kemudian, Anda dapat menambahkan tindakan ke menu yang baru ditambahkan dengan cara ini:

self.menu.addAction( self.action )

Anda mungkin sudah tahu, tetapi hanya untuk membuatnya jelas, konfigurasi GUI seperti itu biasanya harus ditempatkan di initGui()metode plugin Anda.


1
Jawaban yang bagus (semua orang suka tangkapan layar!). Jangan lupa untuk mengimpor QMenu di awal ...
mozzbozz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.