matplotlib-plots を描画するための小さな Tkinter GUI を開発しています。(いくつかのエントリが含まれており、その内容に従ってプロットを組み立てます。)
http://matplotlib.org/examples/user_interfaces/embedding_in_tk.htmlに従ってプロットウィジェットを設計しましたが、パックの代わりにグリッドを使用するだけです:
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=1,column=4,columnspan=3,rowspan=20)
その部分は機能します。ただし、NavigationToolbar を同じ方法で埋め込むと、そうではありません。次の行を含めると、Tkinter はエラーなしで失敗します。
toolbar = NavigationToolbar2TkAgg( canvas, root )
canvas._tkcanvas.grid(row=22,column=4)
これは、NavigationToolbar がpack
内部的に呼び出しておりpack
、grid
うまくいかないためです。ただし、私はグリッドが好きで、NavigationToolbar を使用できるようにするためだけに GUI 全体を再設計する必要はありません。
グリッド経由で NavigationToolbar2TkAgg を使用できるようにするための回避策はありますか? (ここで「サブクラス化してオーバーロードする」というアドバイスを見つけましたが、その方法がわかりません。)
どんな助けでも大歓迎です!