窗口调整大小时调整Tkinter窗口小部件和画布的大小?

时间:2017-09-20 10:56:24

标签: python canvas tkinter resize

我知道这可能听起来像一个已经问过的问题类似的问题,但我遇到的问题是我使用.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)

谢谢

1 个答案:

答案 0 :(得分:2)

嗯,其中一个选项是使用相对定位和大小。例如:

label1.place(relx=0.1, rely=0.25, relheight=0.1, relwidth=0.2)

这样,当您调整窗口大小时,它应相应地更改窗口小部件大小。但是,如@Ethan Field所述,使用此方法将所有小部件放在表单上会非常痛苦。

您可以找到更多信息here