python tkinter网格定位

时间:2017-12-25 10:26:08

标签: python tkinter grid

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

final layout

我的列表是:

$

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

enter image description here

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

enter image description here

如果我取消其余部分的注释......我弄得一团糟!!!

enter image description here

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

1 个答案:

答案 0 :(得分:1)

检查以下代码,我做了多次更改,我忘记了:

from tkinter import *

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

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

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

topFrame.grid(row=0, column=0, sticky='ew')
middleFrame.grid(row=1, column=0, sticky='nsew')
bottomFrame.grid(row=2, column=0, sticky='ew')

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

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

leftFrame.grid(row=0,column=0,sticky="nsew")
rightFrame.grid(row=0, column=1, sticky='nsew')

leftFrame.grid_columnconfigure(0, weight=1)
rightFrame.grid_rowconfigure(0, weight=1)
rightFrame.grid_columnconfigure(0, weight=1)

buttonFeatured=Button(leftFrame, text='   Recommended    ', pady=5)
buttonSkroutz=Button(leftFrame, text='Skroutz Products', pady=5)
buttonFeatured.grid(row=0, column=0, sticky="new")
buttonSkroutz.grid(row=1, column=0, sticky='new')

entryText=StringVar()
entryMain=Entry(rightFrame,textvariable=entryText, bg="white")
entryMain.grid(row=0,column=0,sticky="new")

root.mainloop()

现在,如果您想要更大的文本区域,您可以增加字体大小,也可以使用多行条目Text来配置大小。

你真的应该看看structure question & answers