[英]Grid within frame in tkinter?
我正在嘗試在 python tinker 中構建一個網格結構,該網格結構彼此並排放置,中間沒有任何可用空間,但我不知何故無法實現這一點。
任何人都可以幫助我做錯什么嗎?
這是代碼。
import tkinter as tk
window = tk.Tk()
window.geometry("700x600")
frame1=tk.Frame(window,width=350,height=400,bg='black')
frame1.grid(row=0,column=0,rowspan=1,columnspan=1)
frame2=tk.Frame(window,width=350,height=600,bg='white')
frame2.grid(row=0,column=1)
frame3=tk.Frame(window,width=350,height=200,bg='red')
frame3.grid(row=1,column=0,rowspan=1,columnspan=1)
window.mainloop()
這是我得到的輸出,雖然我想要的是黑框和紅框之間沒有任何間隙地組合在一起,以便總高度保持 600。
問題是,因為frame2
在第二列比更高的frame1
到它的左側。 要解決這個問題,只需指定它跨越frame1
和frame3
占據的兩行。
import tkinter as tk
window = tk.Tk()
window.geometry("700x600")
frame1=tk.Frame(window, width=350, height=400, bg='black')
frame1.grid(row=0, column=0, rowspan=1, columnspan=1)
frame2=tk.Frame(window, width=350, height=600, bg='white')
frame2.grid(row=0, column=1, rowspan=2) # Added rowspan here.
frame3=tk.Frame(window, width=350, height=200, bg='red')
frame3.grid(row=1, column=0, rowspan=1, columnspan=1)
window.mainloop()
結果:
問題是在rowspan
的說法frame2
。
import tkinter as tk
window = tk.Tk()
window.geometry("700x600")
frame1 = tk.Frame(window, width=350, height=400, bg='black')
frame1.grid(row=0, column=0, rowspan=1, columnspan=1)
frame2 = tk.Frame(window, width=350, height=600, bg='white')
frame2.grid(row=0, column=1, rowspan=2) # here add rowspan = 2 argument
frame3 = tk.Frame(window, width=350, height=200, bg='red')
frame3.grid(row=1, column=0, rowspan=1, columnspan=1)
window.mainloop()
發生這種情況是因為您在左側有 2 個框架,它們各自占據一行(總共 2 行),並且您需要將右側的白色框架跨越到 2 行以獲得您想要的網格布局(使它們在右側相等和左),否則它會因為第 0 (2) 列中的幀數和第 1 (1) 列中的幀數之間的差異而變得混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.