本文為大家分享了pyside pyqt實現鼠標右鍵菜單功能的具體代碼,供大家參考,具體內容如下
創(chuàng)新互聯公司專注于企業(yè)成都全網營銷推廣、網站重做改版、云南網站定制設計、自適應品牌網站建設、H5響應式網站、成都做商城網站、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為云南等各大城市提供網站開發(fā)制作服務。在三維軟件中使用pyside/pyqt編寫gui界面時,為了藝術家使用操作的簡潔,以及方便,經常會使用鼠標右鍵菜單進行界面與功能的交互。下面就介紹一下這一功能,當然了網上也有很多案列可供參考。
# -*- encoding: utf-8 -*- try: from PySide import QtGui from PySide import QtCore except ImportError: from PySide2 import QtWidgets as QtGui from PySide2 import QtCore import sys class MainWindow(QtGui.QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.createContextMenu() def createContextMenu(self): ''''' 創(chuàng)建右鍵菜單 ''' # 必須將ContextMenuPolicy設置為Qt.CustomContextMenu # 否則無法使用customContextMenuRequested信號 self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.showContextMenu) # 創(chuàng)建QMenu self.contextMenu = QtGui.QMenu(self) self.actionA = self.contextMenu.addAction(u'添加') self.actionB = self.contextMenu.addAction(u'刪除') # 將動作與處理函數相關聯 # 這里為了簡單,將所有action與同一個處理函數相關聯, # 當然也可以將他們分別與不同函數關聯,實現不同的功能 self.actionA.triggered.connect(self.actionHandler) self.actionB.triggered.connect(self.actionHandler) def showContextMenu(self, pos): ''''' 右鍵點擊時調用的函數 ''' # 菜單顯示前,將它移動到鼠標點擊的位置 self.contextMenu.move(QtGui.QCursor().pos()) self.contextMenu.show() def actionHandler(self): ''''' 菜單中的具體action調用的函數 ''' print 'action handler' if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())