Изменение значка во вложенных меню - PullRequest
1 голос
/ 10 апреля 2019

Я не думаю, что это возможно, но я все еще хотел попробовать спросить.На прилагаемом скриншоте у меня есть вложенные меню.

Можно ли изменить значок клавиш со стрелками, выделенный красным полем?

Я пытаюсь изменить клавишу со стрелкой назначок плюса, если не найдено ни одного элемента подменю.Стрелка по умолчанию может использоваться, если найдены пункты подменю.

enter image description here

1 Ответ

1 голос
/ 10 апреля 2019

Да, вы можете изменить цвет стрелки вправо.

Но есть хитрость, чтобы изменить это.

Истина показателя "png-файл с закрытой веткой"

Вы можете увидеть 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

...