Python tkinter在框架中插入小部件

Python tkinter在框架中插入小部件,python,tkinter,Python,Tkinter,我正在尝试做以下布局 但是ID:label和输入框在中间偏左,然后在中间偏右,它们应该彼此相邻,并且它们一直被网格隔开 我还尝试使用for循环来创建数字键盘,但我不确定如何在循环之外创建一个新变量,并在创建按钮的循环中增加1 from tkinter import * window = Tk() #BOTTOM FRAME SECTION bottomframe = Frame(window,bg="cyan", width =900, height = 100) bottomframe

我正在尝试做以下布局 但是ID:label和输入框在中间偏左,然后在中间偏右,它们应该彼此相邻,并且它们一直被网格隔开 我还尝试使用for循环来创建数字键盘,但我不确定如何在循环之外创建一个新变量,并在创建按钮的循环中增加1

from tkinter import *

window = Tk()


#BOTTOM FRAME SECTION

bottomframe = Frame(window,bg="cyan", width =900, height = 100)
bottomframe.pack(fill=BOTH,side=BOTTOM)
button = Button(window,text="LOG IN")
button.pack(fill=BOTH,side=BOTTOM)
checkbutton = Checkbutton(window, text="Use pseudonym?")
checkbutton.pack(side=BOTTOM)

topframe = Frame(window,bg="red",width =900, height = 100)
topframe.pack(fill=BOTH,side=TOP)
label1 = Label(window, text="Majestic 12 Identifier")
label1.pack(side=TOP)
label2 = Label(window, text="ID")
label2.pack(side=LEFT)
label3 = Label(window,text="Enter keycode:")
label3.pack(side=TOP)
entry1 = Entry(window)
entry1.pack(side=LEFT)

#GRID  SECTION
frame = Frame(window)
frame.pack(fill=BOTH,side=BOTTOM)

n = +1
for i in range(3):
    Grid.rowconfigure(frame,i,weight=1)
    Grid.columnconfigure(frame,i,weight=1)

for i in range(3):
    b = Button(frame, text="%d" % (i+n))
    for j in range(3):
        b = Button(frame, text="%d" % (j+1))
        b.grid(row=i, column=j,ipadx=2,ipady=2,padx=2,pady=2,sticky= W+E+N+S)

window.mainloop()

欢迎任何帮助

好的,我试了一下。我玩了一会儿
框架
对象。我删除了一个,那是不需要的。我引入了
topframe2
,以便
label2
entry1
可以在同一行中

仔细观察各种条目和标签的父项。并非所有对象都应将
窗口
对象作为直接父对象

我使用的是
展开
填充
参数-这里我基本上应用了我在和上所学的内容

从tkinter导入*
window=Tk()
#底部框架截面
顶部框架=框架(窗户,宽度=900,高度=100)
顶部框架。包装(填充=两侧,侧面=顶部)
label1=标签(顶框,text=“Majestic 12标识符”)
标签1.包装(侧面=顶部,填充=两侧,展开=1)
顶部框架2=框架(顶部框架,宽度=900,高度=100)
顶部框架2.包装(填充=两侧,侧面=顶部)
label2=标签(topframe2,text=“ID”)
标签2.包装(侧面=左侧)
entry1=条目(topframe2)
入口1.pack(侧面=左侧,填充=X,展开=1)
label3=标签(窗口,text=“输入键代码:”)
标签3.包装(侧面=顶部)
#网格段
框架=框架(窗口)
框架包装(填充=两侧,侧面=顶部,展开=1)
n=+1
对于范围(3)中的i:
Grid.rowconfigure(帧,i,权重=1)
Grid.columnconfigure(帧,i,权重=1)
对于范围(3)中的i:
b=按钮(框,文本=“%d”%(i+n))
对于范围(3)内的j:
b=按钮(框架,文本=“%d”%(j+1))
b、 网格(行=i,列=j,ipadx=2,ipady=2,padx=2,pady=2,粘性=W+E+N+S)
按钮=按钮(窗口,text=“登录”)
按钮包装(填充=两侧,侧面=底部)
checkbutton=checkbutton(窗口,text=“使用假名?”)
检查按钮。包装(侧面=底部)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
window.mainloop()

请阅读@stovfl,谢谢您的链接。我把它添加到我的答案中。