在Tkinter/Python中将画布定位于窗口

3
有没有一种方法可以将画布放置在窗口中并在其周围添加一个框架?我只找到了如何定位画布内部对象的方法。

只需创建一个Frame并将该帧对象用作Canvas的主控件即可。有什么问题吗? - Joel Cornett
我有两个画布,我希望它们并排放置,而不是一个在上面一个在下面。谢谢,我会尝试使用frame方法。 - Andrew
你是使用 grid() 还是 pack() 作为你的布局管理器? - Joel Cornett
现在没有电脑进行测试,但可以尝试使用类似canvas1.pack(side=LEFT)canvas2.pack(side=RIGHT)的代码。我稍后会给出更详细的答案。 - Joel Cornett
3个回答

6
您可以创建一个框架,然后把您的小部件放在其中:
f = tk.Frame(...)
c1 = tk.Canvas(f, ...)
c2 = tk.Canvas(f, ...)
c1.pack(side="left", fill="both", expand=True)
c2.pack(side="right", fill="both", expand=True)

上述代码将在单个框架内提供两个并排的画布。随着调整包含窗口的大小,它们会增大和缩小。

0
你可以使用place()函数代替pack()函数,并且可以这样做:
canvas.place(relx=0.5, rely=0.5, anchor=CENTER)

这将把它放在中心位置。


0
就像fortyTwo102提到的那样,place函数可以让你精确指定画布的位置。我想再提供一些例子:
# in the center
canvas.place(relx=0.5, rely=0.5, anchor=CENTER)

# in the bottom right corner
canvas.place(relx=1.0, rely=1.0, anchor=SE)

# in the bottom left corner
canvas.place(relx=0.0, rely=1.0, anchor=SW)

# 30 pixels from the left, 50 from the top
canvas.place(x=30, y=50)

源码(以及更多有用的信息):https://www.tutorialspoint.com/python/tk_place.htm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接