我希望覆盖pyqt中的函数addAction(),以便每次在QMenu类中添加项目时都可以修改我的字符串和图标(或者如果没有指定则添加默认值)。这是代码:
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
答案 0 :(得分:2)
如您所见 QAction addAction(self,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)