我正在使用 tkinter 并嘗試將一些框架放入大型機的網格中。在這些框架內,我想將新的小部件放入新的網格中。但問題是:tkinter 認為“新”網格的行和列仍然是來自大型機的舊網格的行和列。如何在嵌套網格中組織它們?
from tkinter import *
from tkinter import ttk
root = Tk()
mainframe = ttk.Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
upper_frame = ttk.Frame(mainframe).grid(row=0, column=0, sticky=(N, W))
lower_frame = ttk.Frame(mainframe).grid(row=1, column=0, sticky=(N, W))
label_1 = ttk.Label(upper_frame, text="Northwest ").grid(row = 0, column = 0)
label_2 = ttk.Label(upper_frame, text="Northeast ").grid(row = 0, column = 1)
label_3 = ttk.Label(lower_frame, text="Southwest ").grid(row = 0, column = 0)
label_4 = ttk.Label(lower_frame, text="Southeast ").grid(row = 0, column = 1)
root.mainloop()
uj5u.com熱心網友回復:
請注意,該行:
upper_frame = ttk.Frame(mainframe).grid(row=0, column=0, sticky=(N, W))
具有與以下相同的結果:
x = ttk.Frame(mainframe)
upper_frame = x.grid(row=0, column=0, sticky=(N, W))
upper_frame結果.grid(...)也是None。_
用作None小部件的父級將使小部件成為根視窗的子級。所以這些標簽是根視窗的孩子而不是預期的upper_frameand lower_frame。
您需要拆分行:
upper_frame = ttk.Frame(mainframe).grid(row=0, column=0, sticky=(N, W))
分為兩行:
upper_frame = ttk.Frame(mainframe)
upper_frame.grid(row=0, column=0, sticky=(N, W))
同樣適用于lower_frame。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/425922.html
