【发布时间】:2019-05-05 06:59:40
【问题描述】:
我正在尝试设置 3 个条目/按钮的位置。我知道它需要用锚和边来完成,但我并不真正理解它是如何工作的。我试图让它们排成一行,第一个在左边,第二个在中间,第三个在右边。我设法做到了这一点,但是它们在 3 个不同的行中。请,有人可以向我解释一下,这是如何工作的? side 和 anchor 值是否与前面的相关?
import tkinter
import random
canvas=tkinter.Canvas(width=500,height=500)
canvas.pack()
def symbol(x,y,z,color):
name=entry1.get()
for i in range(1,z+1):
canvas.create_text(x,y,text=' '+name,angle=(360/z)*i,fill=color,font='Arial 19')
def draw(coordinates):
x=coordinates.x
y=coordinates.y
z=int(entry2.get())
color=entry3.get()
symbol(x,y,z,color)
canvas.bind('<Button-1>',draw)
entry1=tkinter.Entry(bg='red')
entry1.pack(side=tkinter.BOTTOM,anchor=tkinter.W)
entry2=tkinter.Entry(bg='green')
entry2.pack(side=tkinter.BOTTOM,anchor=tkinter.CENTER)
entry3=tkinter.Entry(bg='blue')
entry3.pack(side=tkinter.RIGHT,anchor=tkinter.S)
【问题讨论】:
-
通常,
pack()将垂直或水平排列小部件。由于entry1和entry2使用同侧BOTTOM,所以它们将垂直排列。尝试对 3 个条目使用side=tkinter.LEFT和expand=True。也使用anchor=tkinter.E作为entry3。 -
谢谢,它成功了。我不需要对 entry3 使用 ,,anchor=tkinter.E'' 命令来正常工作。感谢您的支持,但请您解释一下 expand=True 是什么意思?
-
很高兴知道它有帮助。
expand=True将使三个条目分布在窗口的宽度上。如果未设置,则三个条目将在窗口左侧打包在一起。去掉它们就可以看到效果了。
标签: python canvas tkinter anchor tkinter-entry