【发布时间】:2015-12-14 21:10:58
【问题描述】:
看起来几乎不像what I expect
所以我假设有一些我不明白的基础知识。
我假设框架包含它们自己的“网格空间”(行、列),但我看到的行为并不能证明这一点,而且我无法让顶部框架按照我想要的方式工作.我的标签应该在 L 到 R 的同一行,在跨越整个框架的“框架标签”下 - 除非它们没有。我希望实际看起来更像目标 jpg,并且我想使用网格来做到这一点。
您只能看到绿框右侧的一个输入字段。为什么要去那里?
from Tkinter import *
root = Tk()
root.title('Model Definition')
root.resizable(width=FALSE, height=FALSE)
root.geometry('{}x{}'.format(460, 350))
top_frame = Frame(root, bg='cyan', width = 450, height=50, pady=3).grid(row=0, columnspan=3)
Label(top_frame, text = 'Model Dimensions').grid(row = 0, columnspan = 3)
Label(top_frame, text = 'Width:').grid(row = 1, column = 0)
Label(top_frame, text = 'Length:').grid(row = 1, column = 2)
entry_W = Entry(top_frame).grid(row = 1, column = 1)
entry_L = Entry(top_frame).grid(row = 1, column = 3)
#Label(top_frame, text = '').grid(row = 2, column = 2)
center = Frame(root, bg='gray2', width=50, height=40, padx=3, pady=3).grid(row=1, columnspan=3)
ctr_left = Frame(center, bg='blue', width=100, height=190).grid(column = 0, row = 1, rowspan = 2)
ctr_mid = Frame(center, bg='yellow', width=250, height=190, padx=3, pady=3).grid(column = 1, row=1, rowspan=2)
ctr_right = Frame(center, bg='green', width=100, height=190, padx=3, pady=3).grid(column = 2, row=1, rowspan=2)
btm_frame = Frame(root, bg='white', width = 450, height = 45, pady=3).grid(row = 3, columnspan = 3)
btm_frame2 = Frame(root, bg='lavender', width = 450, height = 60, pady=3).grid(row = 4, columnspan = 3)
root.mainloop()
具体来说,我的标签和 Entry 小部件去了哪里,以及如何让它们看起来更像目标(顶部框架,其余部分留待以后使用)。
【问题讨论】:
-
如果这两个图像使用相同的配色方案会有所帮助,除非它们是并且您说蓝色窗口确实应该在底部,即使代码将它放在左侧。
标签: python layout tkinter frame