Я не думаю, что это возможно, но я все еще хочу попробовать спросить. На приложенном скриншоте у меня есть вложенные меню.
Можно ли изменить значок клавиш со стрелками, «выделенный» красным полем?
Я пытаюсь изменить клавишу со стрелкой на значок плюса, если элементы подменю не найдены. Стрелка по умолчанию может использоваться, если найдены элементы подменю.
Да, вы можете изменить цвет стрелки вправо.
Но есть хитрость, как это изменить.
Истинность индикатора "филиал-закрыт 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)
В результате он станет таким.
Вам не понравится белая часть стрелки.
Нет проблем, вы можете удалить их четко с помощью софта free-paint, но я этого не делал, потому что это было ненужно.
Большое спасибо за подробное описание. Но могу ли я спросить, если я хочу, чтобы значок был сброшен обратно к значку по умолчанию, есть ли локальный путь, по которому я могу получить его из (Py) Qt?
Нет, это делать необязательно, если вы используете иконку по умолчанию, вы просто удаляете аргумент setStyleSheet. Если это так, вы можете автоматически использовать оригинальный. Если вы можете использовать free-paint.soft и вы указываете соответствующий путь , вы можете изменить значок на что угодно, даже если это не правый курсор (например, лицо человека или животного).
Это будет pyqt4