我写了一个使用Tkinter的代码我只是不能安排标签和条目框的位置可以有人帮助我。我的代码在下面,它的打印输出是图1。我希望它看起来像图2.
import Tkinter
main_window = Tkinter.Tk()
main_window.geometry("320x400")
main_window.title("Address")
label = Tkinter.Label(main_window,text ="Name:")
label.pack()
nameentry = Tkinter.Entry(main_window)
nameentry.pack()
label2 = Tkinter.Label(main_window, text= "Address:")
label2.pack()
addressentry = Tkinter.Entry(main_window)
addressentry.pack()
label3 = Tkinter.Label(main_window, text = "Phone Number:")
label3.pack()
numberentry = Tkinter.Entry(main_window)
numberentry.pack()
main_window.mainloop()
答案 0 :(得分:0)
您显然希望在网格中布置内容,因此grid
是比pack
更好的选择。
您的布局有三行两列。标签位于第0列(零),您希望它们锚定在右上角(东北方向,表示为" ne")。输入字段位于第二列第1列(一)中。
它看起来像这样(为了清晰起见添加了额外的空间,它不是必需的):
label.grid( row=0, column=0, sticky="ne")
label2.grid(row=1, column=0, sticky="ne")
label3.grid(row=2, column=0, sticky="ne")
nameentry.grid( row=0, column=1, sticky="nsew")
addressentry.grid(row=1, column=1, sticky="nsew")
numberentry.grid( row=2, column=1, sticky="nsew")
最后一步是告诉tkinter如何处理它拥有的任何额外空间。在您的情况下,您可能希望标签列尽可能小,输入字段尽可能大。此外,地址似乎是多行的(尽管您使用的Entry小部件只接受一行)。
为了实现这一目标,我们希望给中间行和右列赋予正权重,tkinter用它来知道如何分配额外空间:
main_window.grid_rowconfigure(1, weight=1)
main_window.grid_columnconfigure(1, weight=1)