TKinter Python GUI对齐

TKinter Python GUI对齐,python,user-interface,tkinter,Python,User Interface,Tkinter,我的GUI有以下代码: root = Tk() draft = Frame(root) draft.grid() root.title("test") var = StringVar() emailLabel = Label(draft, text="E-Mail:") emailLabel.grid(row = 0, column = 0) email = Entry(draft, justify=LEFT) email.grid(row = 0, column = 1) email.ins

我的GUI有以下代码:

root = Tk()
draft = Frame(root)
draft.grid()
root.title("test")
var = StringVar()
emailLabel = Label(draft, text="E-Mail:")
emailLabel.grid(row = 0, column = 0)

email = Entry(draft, justify=LEFT)
email.grid(row = 0, column = 1)
email.insert(0, "E-Mail")

passLabel = Label(draft, text="Pass:")
passLabel.grid(row = 1, column = 0)

password = Entry(draft, justify=LEFT, show="*")
password.grid(row = 1, column = 1)
password.insert(0, "Password")

start = Button(draft, text = "Start")
start.grid(row = 2, column = 0)

stop = Button(draft, text = "Stop")
stop.grid(row = 2, column = 1)

status = Text(draft)
status.grid(row = 3)
status.insert(INSERT, "TESTING")
然而,它并没有按照我想要的方式排列。我希望标签和文本框向左对齐,而不是向右对齐,状态文本框占据底部的整个大小(或多或少是一个日志)

以下是一个屏幕截图:

要使
文本
小部件跨越多列,请使用
columnspan
参数:

status.grid(row=3, columnspan=2)
此外,您可以使用
网格
方法中的
sticky
参数使小部件占据尽可能多的空间。在每次
网格调用中使用此选项:

widget.grid(..., sticky=N+W+E+S)
如果你想让标签更小,你必须重新考虑一下你的布局


(请注意:不建议从tkinter导入
*
导入tkinter作为tk
是首选。)

我同意不喜欢导入
*
。。。但有趣的是,几乎所有的pytk教程都是这样做的……是的,我不知道他们这样做是否是为了避免所有那些
tk.Bla
的事情,使事情更可读,但是在模块名称空间中有大约190个名称并没有多大帮助:SThanks!有没有办法使网格中的每一行不必与上面的行对齐?嗯,这不是
网格
的工作方式。。。正如我所说,您可以使用更多的列和列跨度,或者完全切换几何体管理器,即
pack
。不过我不知道怎么用这个。