窗口

时间:2017-03-01 10:31:11

标签: tkinter

root=Tk()
#root.geometry('800x500+100+100')
#root.resizable(0,0)
root.title('Lottery Number Generator')
frame_1 = Frame(root).pack(side=TOP)
num1 = IntVar()
num2 = IntVar()
num3 = IntVar()
num4 = IntVar()
num5 = IntVar()
num6 = IntVar()

var=StringVar()
var.set("Lucky Lottery generator")

label = Label(frame_1,textvariable=var,font=('times',24,'bold'),width=26).pack(side=TOP)
label = Label(frame_1,textvariable='',width=32).pack(side=TOP)
#label = Label(frame_1,textvariable='',width=32).pack(side=TOP)


frame_2 = Frame(root).pack(side=TOP)

entry_1 = Entry(frame_2,width=4,font=('arial',30),justify=CENTER,bd=20,insertwidth=1,textvariable=num1).pack(side=LEFT)
entry_2 = Entry(frame_2,width=4,font=('arial',30),justify=CENTER,bd=20,insertwidth=1,textvariable=num2).pack(side=LEFT)
entry_3 = Entry(frame_2,width=4,font=('arial',30),justify=CENTER,bd=20,insertwidth=1,textvariable=num3).pack(side=LEFT)
entry_4 = Entry(frame_2,width=4,font=('arial',30),justify=CENTER,bd=20,insertwidth=1,textvariable=num4).pack(side=LEFT)
entry_5 = Entry(frame_2,width=4,font=('arial',30),justify=CENTER,bd=20,insertwidth=1,textvariable=num5).pack(side=LEFT)
entry_6 = Entry(frame_2,width=4,font=('arial',30),justify=CENTER,bd=20,insertwidth=1,textvariable=num6).pack(side=LEFT)

frame_3 = Frame(frame_2,bg='black').pack(side=BOTTOM)

button =Button(frame_3,bg='green',padx=8,pady=8,font=('times',14,'bold'),width=18,text='Generate Numbers',command=lotto).pack(side=TOP)

我创建了3个框架,并设置了'side = top'。框架包含标签,条目,按钮等。但是,我的第3帧未正确显示;它显示在第2帧右侧。

请帮忙!

1 个答案:

答案 0 :(得分:1)

通过修复以下问题可以解决您的问题:

  • 您正在框架2内创建框架3.它应该在根目录上创建:
  

frame_3 = Frame(root,bg='black')

  • 您应该将设计部分与'.pack'分开。所以最后把所有'.packs'(至少是框架)放在一边,如下所示:
# Place all the frames
frame_1.pack(side=TOP)
frame_2.pack(side=TOP)
frame_3.pack(side=TOP)

通过这些更改,按钮会根据需要显示在底部。没有必要用'side = BOTTOM'打包最后一帧,因为你之前已经打包了前两帧。

请将来提供一个最小工作示例(您缺少root.mainloop()并且未定义该按钮的命令。)