如何修改matplotlib导航的图标

2024-10-03 02:44:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以使用以下代码删除/禁用不同的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,使其适合一般GUI设计

如何使用自己的.ico文件修改这些图标

enter image description here


Tags: 代码inselfmatplotlibwith按钮图标工具栏
1条回答
网友
1楼 · 发布于 2024-10-03 02:44:45

该逻辑类似于删除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()))

相关问题 更多 >