更改嵌套菜单中的图标

时间:2019-04-10 00:39:35

标签: python pyqt pyqt4 qmenu

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

是否可以将箭头键图标更改为红色框“突出显示”?

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

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

指标的真相是"branch-closed png file"

您可以在链接页面的几乎底部看到png文件。

因此,它不能通过纯编程方式解决。

您可以自己准备照片。

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

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

注意:

stylesheet-branch-closed-red.png是我的重命名图片。

您可以从上面的链接页面下载原始图片。

右键单击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)

结果就是这样。

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

没问题,您可以使用自由绘制的软件将其明确删除,但我没有这样做,因为它是不必要的。

branch-png