#python #matplotlib #pyqt
#python #matplotlib #pyqt
Вопрос:
Я смог удалить / отключить различные кнопки панели инструментов навигации matplotlib с помощью следующего кода:
canvasplt_matplotlib_toolbar = NavigationToolbar(
self.canvasplt, self
)
matplotlib_toolbar_with_removed_icons = self.canvasplt.toolbar
unwanted_buttons = ["Back", "Forward", "Customize", "Subplots", "Save"]
for x in matplotlib_toolbar_with_removed_icons.actions():
if x.text() in unwanted_buttons:
matplotlib_toolbar_with_removed_icons.removeAction(x)
Теперь я хотел бы изменить дизайн значков оставшихся значков, таких как home, pan и zoom, чтобы он соответствовал общему дизайну графического интерфейса.
Как я могу изменить эти значки с помощью моих собственных файлов .ico?
Ответ №1:
Логика аналогична удалению QAction, поскольку вы должны выполнить итерацию для получения соответствующего QAction и заменить значок с помощью метода setIcon:
unwanted_buttons = ["Back", "Forward", "Customize", "Subplots", "Save"]
icons_buttons = {
"Home": QtGui.QIcon("/path/of/home.png"),
"Pan": QtGui.QIcon("/path/of/pan.png"),
"Zoom": QtGui.QIcon("/path/of/zoom.png"),
}
for action in matplotlib_toolbar_with_removed_icons.actions():
if action.text() in unwanted_buttons:
matplotlib_toolbar_with_removed_icons.removeAction(action)
if action.text() in icons_buttons:
action.setIcon(icons_buttons.get(action.text(), QtGui.QIcon()))