我知道这听起来像是与一些已经提出的问题类似的问题,但我遇到的问题是我使用 .place(x=?,y=?) 放置所有小部件,而不是像大多数那样使用 tkinter 网格问题,这就是为什么我想知道是否有人有想法让它工作而不需要使用网格重写所有内容,这是我的代码中的一个示例:
#canvas
self.fig.clear()
self.fig=plt.figure()
plt.gcf().subplots_adjust(left=0.16)
plt.xlabel(xlabel)
plt.ylabel(ylabel)
self.CS = plt.contour(X, Y, Z)
plt.plot(pointX, pointY, 'kx')
plt.clabel(self.CS, inline=1, fontsize=10)
self.canvas = FigureCanvasTkAgg(self.fig, self)
self.canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)
self.canvas.tkcanvas.place(x=0,y=350,hight=400,width=400)
self.canvas.show()
#Label
label1 = tk.Label(self, text="Horizontal", font=LARGE_FONT)
label1.place(x = 20, y = 50,height=20)
label2 = tk.Label(self, text="Vertikal", font=LARGE_FONT)
label2.place(x = 120, y = 50,height=20)
谢谢
最佳答案
嗯,其中一个选项是使用相对定位和大小。例如:
label1.place(relx=0.1, rely=0.25, relheight=0.1, relwidth=0.2)
这样,当您调整窗口大小时,它应该相应地更改小部件大小。然而,正如 @Ethan Field 所说,使用这种方法将所有小部件放置在表单上会非常痛苦。
您可以找到更多信息here 。
关于python - 当窗口调整大小时调整 Tkinter 小部件和 Canvas 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46320191/