您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:matplotlib更改窗口图标的方法示例

51自学网 2021-10-30 23:01:38
  python
这篇教程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 pltfrom PyQt5 import QtGuiplt.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更改窗口图标内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python中添加模块导入路径的方法
matplotlib交互式数据光标mpldatacursor的实现
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。