如何修改matplotlib导航的图标
How to modify icon of matplotlib navigation
我已经能够使用以下代码 delete/disable 不同的 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)
现在我想更改其余图标的图标设计,例如适合通用 GUI 设计的主页、平移和缩放。
如何用我自己的 .ico 文件修改这些图标?
逻辑类似于删除 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()))
我已经能够使用以下代码 delete/disable 不同的 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)
现在我想更改其余图标的图标设计,例如适合通用 GUI 设计的主页、平移和缩放。
如何用我自己的 .ico 文件修改这些图标?
逻辑类似于删除 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()))