2015-11-26 19 views
1

我想覆蓋pyqt中的函數addAction(),以便有可能修改我的字符串和圖標(或者添加默認的字符串和圖標,如果沒有指定)每次項目添加到我的QMenu類中。下面是代碼:重寫addAction()修改pyqt中的字符串和QIcon

Python代碼

class Menu(QtWidgets.QMenu): 

    def __init__(self, parent=None): 
     super(Menu, self).__init__(parent) 

     self.addAction("First thing") 
     self.addAction("Second Thing") 

    def addAction(self, *__args): 
     *Modify string and icon 

想要的結果將與這些字符串的菜單(和圖標):

1. First thing 
2. Second Thing 

回答

2

正如你可以看到的QAction的addAction(個體經營,QIcon圖標,QString文本)可以有一個QIcon作爲參數。這就是我如何創建我的QMenu:

_menu = QMenu() 

#Define action 
_add_action  = _menu.addAction(QIcon("images\add.png"),"Add") 
_remove_action = _menu.addAction(QIcon("images\remove.png"),"Remove") 

#Asign events to actions 
self.connect(_add_action, SIGNAL("triggered()"), self._add_handle) 
self.connect(_remove_action, SIGNAL("triggered()"), self._remove_handle) 
+1

好吧,那很完美!謝謝 ! – SyedElec