python - 当窗口调整大小时调整 Tkinter 小部件和 Canvas 的大小?

标签 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)

谢谢

最佳答案

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

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/

相关文章:

javascript - 使用 Chrome 浏览器录制 Canvas 动画播放问题

python tkinter 打包

python tkinter - 带有跨度小部件的交互式绘图和列表框

python - 将 Cython 中的 numpy 数组传递给需要动态分配数组的 C 函数

python - Lambda 函数翻译

python - 为什么我的带有线程的 numpy 代码不是并行的?

python - 基于字符串模式删除列表中元素的最佳方法

javascript - Fabric.js - 多用户 Canvas

android - 如何反转弧形底部导航?

python - time.sleep 阻止按下 tkinter.Button