Thêm mục menu mới vào ứng dụng QGIS Desktop?


14

Tôi cần thêm mục menu mới vào menu cấp cao nhất của QGIS Desktop (2.7.0); Tức là nó sẽ ở cùng cấp độ với "Dự án", "Chỉnh sửa", "Xem", "Lớp", v.v.

Theo như tôi biết, có một cách khá hay là cách ẩn các mục menu (Cài đặt-> Tùy chỉnh) Plus bằng cách sử dụng QgisInterface ( http://qgis.org/api/ classQgisInterface.html ) Tôi có thể thêm các mục mới vào Menu đã được xác định trong QGIS ( addLayerMothy, addPluginToDatabaseMothy, v.v.) từ mã plugin của tôi.

Nhưng tôi cần mục Menu mới trên lớp trên cùng (đây là req từ khách hàng).

Câu trả lời:


22

Bạn có thể thêm một menu tùy chỉnh vào GUI QGIS theo cách này:

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 )

Như bạn có thể thấy trong đoạn mã ở trên, bạn đang thêm một menu vào vị trí thứ hai đến vị trí cuối cùng của thanh menu, ngay trước Helpmenu.

nhập mô tả hình ảnh ở đây

Sau đó, bạn có thể thêm một hành động vào menu mới được thêm của mình theo cách này:

self.menu.addAction( self.action )

Có thể bạn đã biết, nhưng chỉ cần làm rõ, cấu hình GUI như vậy thường được đặt trong initGui()phương thức của plugin của bạn.


1
Câu trả lời hay (mọi người đều thích ảnh chụp màn hình!). Chỉ cần đừng quên nhập QMothy vào đầu ...
mozzbozz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.