Teh Ki
Teh Ki

Reputation: 455

Changing icon in nested menus

I don't think this may be posssible but I had still want to try asking. In the attached screenshot, I have nested menus.

Is it possible to change the arrow keys icon as 'highlighted' by the red box?

I am trying to change the arrow key to a plus icon if there are no sub menu items found. The default arrow can be in use if there are sub menu items found.

enter image description here

Upvotes: 1

Views: 303

Answers (1)

Haru
Haru

Reputation: 2073

Yes, you can change the color of right-arrow.

But there is a trick to change it.

The truth of indicator is "branch-closed png file"

You can see the png file at the almost bottom on the page in the link.

So, it can not be solved by the pure-programmic way.

You prepare the picture in advance by yourself.

and please following code in QMenu constructor.

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

Attention:

stylesheet-branch-closed-red.png is my renamed picture.

You can download the original picture from the above link page.

you right-click the png picture and save as name.

This code comes from your past question.

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)

As the result, it will become like this.

You will dislike the white part of the arrow.

No problem, you can delete them clearly with a free-paint soft, but I didn't do it because it was needless.

branch-png

Upvotes: 1

Related Questions