【发布时间】:2018-03-01 09:43:02
【问题描述】:
我知道这听起来可能与一些已经提出的问题类似,但我遇到的问题是我使用 .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)
谢谢
【问题讨论】:
-
是的,有可能。有一个 tkinter 窗口调整大小事件,每次触发时,您都可以循环并调整每个小部件的大小和位置。但这样做是荒谬的。将程序更改为使用
.pack()或.grid()会更容易、更有效。 -
好的,谢谢您的回答
-
嘿@EthanField 有没有可能给我一个关于如何使用窗口调整大小事件的例子,因为我尝试使用网格,到目前为止它还没有看到它是如何使用地方的,谢谢你。
-
稍后我会尝试为您提供一个示例,请注意此空间
标签: python canvas tkinter resize