是否可以更改Matplotlibe图形窗口的图标?我的应用程序有一个按钮,打开带有图形的图形窗口(使用Matplotlib创建)。我设法修改了应用程序图标,但图形窗口仍然有“Tk”图标,这是典型的Tkinter。
答案 0 :(得分:4)
我用这种方式解决了它:
在我按下用imshow()
和show()
创建图形的按钮之前,我用这种方式初始化图形:
plt.Figure()
thismanager = get_current_fig_manager()
thismanager.window.wm_iconbitmap("icon.ico")
所以当我按下show()
时,窗口会显示我想要的图标。
答案 1 :(得分: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)
答案 2 :(得分:0)
如果您使用的是Qt4Agg后端,以下代码可能会对您有所帮助:
thismanager = plt.get_current_fig_manager()
from PyQt4 import QtGui
thismanager.window.setWindowIcon(QtGui.QIcon((os.path.join('res','shepherd.png'))))
答案 3 :(得分:0)
在这里添加这个,现在Qt5Agg后端已经成为主流。它与Qt4Agg后端类似(几乎相同),如 Sijie Chen 的回答所述。
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))
答案 4 :(得分:0)
我发现在带有PyQT5的OS X下,执行plt.get_current_fig_manager().window.setWindowIcon()
无效。要更改停靠图标,您必须在setWindowIcon()
实例而非窗口上调用QApplication
。
对我有用的是:
QApplication.instance().setWindowIcon(QtGui.QIcon(icon_path))
请注意,QApplication.instance()
在实际创建图形之前将是None
,因此请首先这样做。