(1)是的。
(5)是的,裏面Frame
可以使用grid()
外pack()
(4)可以使用weight
在grid
設置行大小。
#!/usr/bin/env python3
import tkinter as tk
root = tk.Tk()
root.geometry('400x300')
header = tk.Frame(root, bg='green')
content = tk.Frame(root, bg='red')
footer = tk.Frame(root, bg='green')
root.columnconfigure(0, weight=1) # 100%
root.rowconfigure(0, weight=1) # 10%
root.rowconfigure(1, weight=8) # 80%
root.rowconfigure(2, weight=1) # 10%
header.grid(row=0, sticky='news')
content.grid(row=1, sticky='news')
footer.grid(row=2, sticky='news')
root.mainloop()
如果頁眉和頁腳具有一定的高度,然後
可以使用side
在pack
把頁腳底部
#!/usr/bin/env python3
import tkinter as tk
root = tk.Tk()
root.geometry('400x300')
header = tk.Frame(root, bg='green', height=30)
content = tk.Frame(root, bg='red')
footer = tk.Frame(root, bg='green', height=30)
header.pack(fill='both') #, side='top')
content.pack(fill='both')
footer.pack(fill='both', side='bottom')
root.mainloop()
或expand
內容使用的休息空間
#!/usr/bin/env python3
import tkinter as tk
root = tk.Tk()
root.geometry('400x300')
header = tk.Frame(root, bg='green', height=30)
content = tk.Frame(root, bg='red')
footer = tk.Frame(root, bg='green', height=30)
header.pack(fill='both')
content.pack(fill='both', expand=True)
footer.pack(fill='both')
root.mainloop()
感謝................. – Karim
當我創造一切通過網格中的所有3幀像你的第一個例子,然後我試圖通過包添加一個控制到中央框架,它說這是不允許的。爲什麼不?我不能在中央框架內使用包裝嗎? – Karim
你必須顯示代碼和錯誤信息 - 通常你不能在一個窗口或框架中使用'grid()'和'pack()'和'place()',但是如果你使用grid() )*外*幀和'pack()* *內*幀。 – furas