更改嵌套菜单中的图标

Changing icon in nested menus

我认为这不可能,但我仍然想尝试询问。 在随附的屏幕截图中,我有嵌套菜单。

是否可以将箭头键图标更改为红色框的'highlighted'?

如果找不到子菜单项,我正在尝试将箭头键更改为加号图标。 如果找到子菜单项,则可以使用默认箭头。

是的,您可以更改右箭头的颜色。

但是有一个技巧可以改变它。

指标的真实性是"branch-closed png file"

您可以在 link 页面的底部看到 png 文件。

所以,纯程序化的方式解决不了

图片你自己提前准备好。

请遵循 QMenu 构造函数中的代码。

self.setStyleSheet("QMenu::right-arrow{image:url(stylesheet-branch-closed-red.png);}")

注意:

stylesheet-branch-closed-red.png是我改名后的图片

原图可从上述link页面下载。

你右键单击png图片并另存为名称。

此代码来自您之前的问题。

class QCustomMenu(QtGui.QMenu):
    """Customized QMenu."""

    def __init__(self, title, parent=None):
        super(QCustomMenu, self).__init__(title=str(title), parent=parent)
        self.setup_menu()
        self.setStyleSheet("QMenu::right-arrow{image:url(stylesheet-branch-closed-red.png);}")
    def setup_menu(self):
        self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)        
    def contextMenuEvent(self, event):
        no_right_click = [QAddAction]
        if any([isinstance(self.actionAt(event.pos()), instance) for instance in no_right_click]):
            return
        pos = event.pos()

    def addAction(self, action):
        super(QCustomMenu, self).addAction(action)

结果会变成这样

你会不喜欢箭头的白色部分。

没问题,你可以用免绘软件把它们删得很清楚,但我没这么做,因为没必要。