2012-04-17 12 views
2

Matplotlibe Figureウィンドウのアイコンを変更することはできますか?私のアプリケーションには、(Matplotlibで作成された)グラフ付きのFigureウィンドウを開くボタンがあります。私はアプリケーションアイコンを変更することができましたが、FigureウィンドウにはTkinterの典型的な「Tk」アイコンがあります。Matplotlib Figureウィンドウのアイコンを変更する

+0

ないまさにあなたは尋ねたが、ここではTkinterの中matplot図を埋め込む例です。http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_tk.html(多分やり過ぎだけでアイコンを変更するには) – FabienAndre

+0

@FabienAndre:ありがとうございましたが、私はそのことではできません。 – maupertius

+2

通常のtkinterウィンドウのアイコンを変更できたので、matplotlibの図をtkinterウィジェットに表示すると、それを自分のTkinterウィンドウに表示できますToplevelはあなたがアイコンを変えることができるウインドウを開くことができるウィジェットです)。さらに、別のウィンドウを使用することを余儀なくされることはありません。 – FabienAndre

答えて

3

私はこの方法でそれを解決:私はshow()を押したときに、ウィンドウが持っているので、

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

: 私はimshow()show()とのFigureを作成し、ボタンを押す前に、私はこのように数値を初期化しますアイコンがほしい。

+0

この回答をお寄せいただきありがとうございます。wxAggバックエンドを使用している場合、同等のコードはthismanager.window.SetIcon(wx.Icon( "mylogo.ico"、wx.BITMAP_TYPE_ICO))です。 – harijay

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) 
0

をあなたはQt4Aggバックエンドを使用している場合は、次のコードはあなたを助けるかもしれない:

thismanager = plt.get_current_fig_manager() 
from PyQt4 import QtGui 
thismanager.window.setWindowIcon(QtGui.QIcon((os.path.join('res','shepherd.png')))) 
0

ちょうどこれを追加しますここで、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)) 
関連する問題