。这是因为Matplotlib默认使用Tkinter作为其后端,而Tkinter在Windows 10上的默认行为是根据内容自动调整窗口大小。
要解决这个问题,可以通过以下几种方式:
geometry
方法设置固定的窗口大小。例如,root.geometry("800x600")
将窗口大小设置为800x600像素。resizable
方法禁用窗口的大小调整功能。例如,root.resizable(False, False)
将禁止用户调整窗口的宽度和高度。import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
root = tk.Tk()
root.geometry("800x600")
# 创建Matplotlib图形
fig = Figure(figsize=(6, 4), dpi=100)
ax = fig.add_subplot(111)
ax.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
# 创建FigureCanvasTkAgg对象
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
# 将图形放置在Tkinter窗口中
canvas.get_tk_widget().pack()
root.mainloop()
在这个示例中,我们创建了一个大小为800x600像素的Tkinter窗口,并在其中嵌入了一个Matplotlib图形。通过设置Figure的大小和dpi,可以更好地控制图形的大小。
总结起来,要在tkinter应用程序中调用Matplotlib而不改变Windows 10上的根窗口大小,可以设置固定的窗口大小、禁用窗口大小调整功能,或者使用FigureCanvasTkAgg类创建嵌入式的Matplotlib图形。
领取专属 10元无门槛券
手把手带您无忧上云