python tkinter网格定位

问题描述 投票:0回答:1

我是Python的新手,用网格尝试我的第一个布局。我真正需要的是这种布局:

我的列表是:

1. root=Tk()
2. root.geometry("640x480")
3. root.title("Skroutz Parser")

#entryText=StringVar(root)
4. topFrame=Frame(root, bg='cyan', width = 640, height=80)
5. middleFrame=Frame(root,bg='gray2', width=640, height=400)
6. bottomFrame=Frame(root, bg='yellow', width = 640, height=50)

# layout all of the main containers
7. root.grid_rowconfigure(1, weight=1)
8. root.grid_columnconfigure(0, weight=1)

9. topFrame.grid(row=0)
10.middleFrame.grid(row=1)
11.bottomFrame.grid(row=2)

# layout middle container
12.middleFrame.grid_rowconfigure(0, weight=1)
13.middleFrame.grid_columnconfigure(0, weight=1)

14.leftFrame=Frame(middleFrame, bg='green', width = 125, height=400)
15.rightFrame=Frame(middleFrame, bg='white', width = 515, height=400)

16.leftFrame.grid(row=0,column=0,sticky="n")
17.rightFrame.grid(row=0, column=1)

18.buttonFeatured=Button(leftFrame, text='   Recommended    ', pady=5, .command=showRecommendedProductsResults)
19.buttonSkroutz=Button(leftFrame, text='Skroutz Products', pady=5, command=printSkroutzProducts)
20.buttonFeatured.grid(row=0, column=0, sticky="n")
21.buttonSkroutz.grid(row=1, column=0)

22.entryText=StringVar()
23.entryMain=Entry(rightFrame,textvariable=entryText, bg="white")
24.entryMain.grid(row=0,column=0,rowspan=2,columnspan=5,sticky="w")

25.root.mainloop()

如果我评论第18-24行,那么我或多或少会得到所需的布局:

如果我取消注释第18-21行(留下注释行22-24)然后我得到这个(左框架上的奇怪的黑色):

如果我取消注释剩余的线......我弄得一团糟!

我现在挣扎了两天,但没有运气....任何帮助将不胜感激!谢谢!

python tkinter grid
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.