matplotlib更改窗口图标的方法示例

 更新时间:2021年02月03日 09:08:13   作者:mighty13  
这篇文章主要介绍了matplotlib更改窗口图标的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

matplotlib窗口图标默认是matplotlib的标志,如果想修改怎么改呢?

由于我选择的matplotlib后端是PyQT5,直接查看matplotlib.backends.backend_qt5模块源码。

原理

查看源码可知,窗口图标功能定义在FigureManagerQT类中,设置的默认图标是mpl-data\images\matplotlib.svg。
FigureManagerQT的父类是FigureManagerBase,其功能是作为容器隔离matplotlib图像和后端实现的窗口,并与窗口进行交互,它会自动适配matplotlib选用的后端。
这样只用找到当前图像中FigureManagerQT类的实例(即当前图像的图像管理器)后调用setWindowIcon方法即可完成窗口图标的更改。
获取当前图像的图像管理器有两种写法,因此,更改窗口图标的实现有两种。
根据matplotlib.pyplot.get_current_fig_manager()函数源码可知这两种方法是等价的。

实现代码

import matplotlib.pyplot as plt
from PyQt5 import QtGui

plt.plot([1,2])
# 构建图标
PATH_TO_ICON = r"c:\quit.png"
new_icon = QtGui.QIcon(PATH_TO_ICON)
# 方法一:使用figure.canvas.manager获取当前图像的`FigureManagerQT`类实例
fig =plt.gcf()
fig.canvas.manager.window.setWindowIcon(QtGui.QIcon(new_icon))

# 方法二:使用plt.get_current_fig_manager()获取当前图像的`FigureManagerQT`类实例
plt.get_current_fig_manager().window.setWindowIcon(new_icon)
plt.show()

matplotlib源码

class FigureManagerQT(FigureManagerBase):
  """
  Attributes
  ----------
  canvas : `FigureCanvas`
    The FigureCanvas instance
  num : int or str
    The Figure number
  toolbar : qt.QToolBar
    The qt.QToolBar
  window : qt.QMainWindow
    The qt.QMainWindow
  """

  def __init__(self, canvas, num):
    FigureManagerBase.__init__(self, canvas, num)
    self.window = MainWindow()
    self.window.closing.connect(canvas.close_event)
    self.window.closing.connect(self._widgetclosed)

    self.window.setWindowTitle("Figure %d" % num)
    image = str(cbook._get_data_path('images/matplotlib.svg'))
    self.window.setWindowIcon(QtGui.QIcon(image))
def get_current_fig_manager():
  return gcf().canvas.manager

到此这篇关于matplotlib更改窗口图标的方法示例的文章就介绍到这了,更多相关matplotlib更改窗口图标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 编写python程序的90条建议

    编写python程序的90条建议

    自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去看 Google 的 Python 代码规范,对这几年的工作经验,做个简单的笔记,如果你也在学 Python,准备要学习 Python,希望这篇文章对你有用。
    2021-04-04
  • numpy实现合并多维矩阵、list的扩展方法

    numpy实现合并多维矩阵、list的扩展方法

    今天小编就为大家分享一篇numpy实现合并多维矩阵、list的扩展方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 基于Python实现IP代理池

    基于Python实现IP代理池

    在网络爬虫或数据采集领域,IP代理池是一种常用的工具,本文将详细介绍如何使用Python实现一个简单的IP代理池,有需要的可以参考一下
    2024-11-11
  • Python迷宫生成和迷宫破解算法实例

    Python迷宫生成和迷宫破解算法实例

    今天小编就为大家分享一篇Python迷宫生成和迷宫破解算法实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 如何使用Python获取昨天的日期

    如何使用Python获取昨天的日期

    Python 是一种高级语言,可用于数据科学和机器学习,以使用 Python 的数据结构训练 AI,它用于编写各种应用程序,从 Web 和桌面到操作系统级程序,这篇文章主要介绍了在 Python 中获取昨天的日期,需要的朋友可以参考下
    2023-05-05
  • Python中的内存管理之python list内存使用详解

    Python中的内存管理之python list内存使用详解

    这篇文章主要介绍了Python中的内存管理之python list内存使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法

    Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法

    这篇文章主要介绍了Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法,涉及Python针对列表与字典的元素遍历、判断、去重、排序等相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Python中类变量和实例变量的区别

    Python中类变量和实例变量的区别

    这篇文章主要介绍了Python中类变量和实例变量的区别,文章针对Python类变量和实例变量的问题,给出了具体说明和演示,需要的小伙伴可以参考一下
    2022-02-02
  • python Django框架实现自定义表单提交

    python Django框架实现自定义表单提交

    这篇文章主要为大家详细介绍了Django框架实现自定义表单提交,针对"表单提交"和"Ajax提交"两种方式来解决CSRF带来的错误进行讲解,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • seek引发的python文件读写的问题及解决

    seek引发的python文件读写的问题及解决

    这篇文章主要介绍了seek引发的python文件读写的问题及解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论