Python 使用.pack()在Tkinter框架中居中小部件
我尝试使用.pack()方法将所有标签和输入框向下移动到屏幕中间。我试着用Python 使用.pack()在Tkinter框架中居中小部件,python,tkinter,pack,Python,Tkinter,Pack,我尝试使用.pack()方法将所有标签和输入框向下移动到屏幕中间。我试着用 anchor = CENTER 使用.place()方法,但这会使所有内容在中心重叠。我如何简单地将所有小部件移动到Tkinter框架的中心 这是我的密码: from Tkinter import * root = Tk() root.minsize(width = 500, height = 500) root.wm_title("Email Program v1.0") def callback():
anchor = CENTER
使用.place()方法,但这会使所有内容在中心重叠。我如何简单地将所有小部件移动到Tkinter框架的中心
这是我的密码:
from Tkinter import *
root = Tk()
root.minsize(width = 500, height = 500)
root.wm_title("Email Program v1.0")
def callback():
print ("Hello!")
#sign in - email
usernameLabel = Label(root, text = "Email:")
usernameLabel.pack(padx = 0, pady = 0)
usernameInput = Entry(root)
usernameInput.pack()
usernameInput.focus_set()
passwordLabel = Label(root, text = "Password:")
passwordLabel.pack()
passwordInput = Entry(root, show = "*", width = 20)
passwordInput.pack()
passwordInput.focus_set()
#submit email credentials - connect to the server
submitEmail = Button(root, text = "Submit", fg = "black", width = 10, command = callback)
submitEmail.pack()
root.mainloop()
简单的解决方案是将所有小部件放在一个框架中,然后将框架居中 简单的解决方案是将所有小部件放在一个框架中,然后将框架居中 我设法用三个框架将这些标签和条目放在中心,两个框架没有任何内容,只是为了“吃”空间
frame1 = Frame(root)
frame1.pack(expand=True)
frame2 = Frame(root)
usernameLabel = Label(frame2, text = "Email:")
usernameLabel.pack(padx = 0, pady = 0)
usernameInput = Entry(frame2)
usernameInput.pack()
usernameInput.focus_set()
passwordLabel = Label(frame2, text = "Password:")
passwordLabel.pack()
passwordInput = Entry(frame2, show = "*", width = 20)
passwordInput.pack()
passwordInput.focus_set()
submitEmail = Button(frame2, text = "Submit", fg = "black", width = 10, command\
= callback)
submitEmail.pack()
frame2.pack(anchor=CENTER)
frame3 = Frame(root)
frame3.pack(expand=True)
我设法用三个框架将这些标签和条目放在中心,两个框架没有任何内容,只是为了“吃”空间
frame1 = Frame(root)
frame1.pack(expand=True)
frame2 = Frame(root)
usernameLabel = Label(frame2, text = "Email:")
usernameLabel.pack(padx = 0, pady = 0)
usernameInput = Entry(frame2)
usernameInput.pack()
usernameInput.focus_set()
passwordLabel = Label(frame2, text = "Password:")
passwordLabel.pack()
passwordInput = Entry(frame2, show = "*", width = 20)
passwordInput.pack()
passwordInput.focus_set()
submitEmail = Button(frame2, text = "Submit", fg = "black", width = 10, command\
= callback)
submitEmail.pack()
frame2.pack(anchor=CENTER)
frame3 = Frame(root)
frame3.pack(expand=True)
你怎么能期望它们都居中而不重叠呢?如果两个东西居中,根据定义,它们将位于彼此之上。此代码与pack(anchor=“center”)一起在我的机器上工作。需要一些进一步的代码/解释来复制该问题。仅水平或垂直居中?您如何期望它们都居中而不重叠?如果两个东西居中,根据定义,它们将位于彼此之上。此代码与pack(anchor=“center”)一起在我的机器上工作。需要一些进一步的代码/解释来复制问题。是水平还是垂直移动到中心?