调整Tkinter中的绘图大小

时间:2015-04-17 12:04:46

标签: matplotlib tkinter python-2.6

我正在为Tkinter制作一个小程序供个人使用,它将包含一个需要调整窗口大小的图表。如果我使窗口变小,这是有效的,但是,如果我增加窗口大小,绘图在达到某个大小后保持相同的大小(尽管它很好地粘在它所在的帧的中间)。我尝试了包和网格,但我不明白为什么它会调整任何更大...目前我设置原始图像为21 x 13英寸(但我想知道是什么阻止/禁止它在第一次调整大小的地方。

这是我的代码(我知道它有点笨重......)

from Tkinter import *
import ttk
import misc
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure


root = Tk()
root.title("Plotting Customers Lines")

content = ttk.Frame(root, padding=(3,3,12,12))
plot = ttk.Frame(root, padding=(3,3,12,12))
toolbarframe = ttk.Frame(root)

subject = StringVar(content)

dropdown = ttk.Combobox(content, textvariable = subject, values = ['To', 'Do', 'Later'])
ok = ttk.Button(content, text='Plot Timeline')

f = plt.figure(figsize=(21,13))
a = f.add_subplot(111)
a.plot(range(100),range(100))

canvas = FigureCanvasTkAgg(f, plot)
canvas.show()

toolbar = NavigationToolbar2TkAgg(canvas, toolbarframe)
toolbar.update()

content.grid(column=1, row=0)
plot.grid(column=0,row=0)
toolbarframe.grid(column=0,row=1)

ok.grid(column=1, row=1)
dropdown.grid(column=1,row=0)
canvas.get_tk_widget().grid(column=0, row=0, sticky=(N,W,E,S))#pack(side=TOP, fill=BOTH, expand = True)#grid(column=0, row=0, sticky=(N,W,E,S))

root.columnconfigure(0, weight = 1)
root.columnconfigure(1, weight = 0)
root.rowconfigure(0, weight = 1)
root.rowconfigure(1, weight = 0)

plot.columnconfigure(0, weight = 1)
plot.rowconfigure(0, weight = 1)

root.mainloop()

0 个答案:

没有答案