我一直在开发一个图形程序,我想知道是否可以在工具栏中添加一些facecolor属性,因为它不在图上
self.g = Figure(figsize=(5,5), dpi=100, facecolor=self.controller.color)
self.canvas = FigureCanvasTkAgg(self.g, self)
self.toolbar = NavigationToolbar2TkAgg(self.canvas, self)
self.toolbar.facecolor = self.controller.color
答案 0 :(得分:3)
Tk小部件有一个属性background
,表示它们的背景颜色。您可以将其设置为工具栏本身,也可以设置为设置坐标的消息框。
color = "#d469a3"
toolbar = NavigationToolbar2TkAgg(canvas, root, )
toolbar.config(background=color)
toolbar._message_label.config(background=color)
toolbar.update()
一些完整的示例,基于the official example。
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import sys
if sys.version_info[0] < 3:
import Tkinter as Tk
else:
import tkinter as Tk
root = Tk.Tk()
root.wm_title("Embedding in TK")
color = "#d469a3"
f = Figure(figsize=(5, 4), dpi=100, facecolor=color)
a = f.add_subplot(111)
t = arange(0.0, 3.0, 0.01)
s = sin(2*pi*t)
a.plot(t, s)
# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
toolbar = NavigationToolbar2TkAgg(canvas, root, )
toolbar.config(background=color)
toolbar._message_label.config(background=color)
toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
Tk.mainloop()
您也可以更改按钮颜色
for button in toolbar.winfo_children():
button.config(background=color)
导致
注意:在较新版本的matplotlib中,您应使用NavigationToolbar2Tk
代替NavigationToolbar2TkAgg
。