6

是否可以更改 Matplotlibe 图形窗口的图标?我的应用程序有一个按钮,可以打开一个带有图形的图形窗口(使用 Matplotlib 创建)。我设法修改了应用程序图标,但图形窗口仍然有 Tkinter 典型的“Tk”图标。

4

5 回答 5

6

我以这种方式解决了它:在按下创建图形的按钮之前imshow()show()我以这种方式初始化图形:

plt.Figure()
thismanager = get_current_fig_manager()
thismanager.window.wm_iconbitmap("icon.ico")

所以当我按下show()窗口时有我想要的图标。

于 2012-04-18T11:07:07.020 回答
3

对我来说,以前的答案不起作用,而是需要以下内容:

from Tkinter import PhotoImage
import matplotlib

thismanager = matplotlib.pyplot.get_current_fig_manager()
img = PhotoImage(file='filename.ppm')
thismanager.window.tk.call('wm', 'iconphoto', thismanager.window._w, img)
于 2012-12-11T11:25:55.940 回答
1

只需在此处添加此内容,现在 Qt5Agg 后端已成为主流。它与 Sijie Chen的回答中概述的 Qt4Agg 后端相似(几乎相同) 。

import os
import matplotlib.pyplot as plt
from PyQt5 import QtGui

# Whatever string that leads to the directory of the icon including its name
PATH_TO_ICON = os.path.dirname(__file__) + '/static/icons/icon.ico'

plt.get_current_fig_manager().window.setWindowIcon(QtGui.QIcon(PATH_TO_ICON))
于 2017-11-06T04:53:42.853 回答
0

如果您使用的是 Qt4Agg 后端,以下代码可能会对您有所帮助:

thismanager = plt.get_current_fig_manager()
from PyQt4 import QtGui
thismanager.window.setWindowIcon(QtGui.QIcon((os.path.join('res','shepherd.png'))))
于 2017-05-09T06:01:57.017 回答
0

我发现在带有 PyQT5 的 OS X 下,doingplt.get_current_fig_manager().window.setWindowIcon()没有任何效果。要更改停靠图标,您必须调用setWindowIcon()实例QApplication,而不是窗口。

对我有用的是:

QApplication.instance().setWindowIcon(QtGui.QIcon(icon_path))

请注意,直到QApplication.instance()None实际创建一个图形,所以先这样做。

于 2020-08-12T15:21:00.423 回答