如何调整 tkinter 列表框的大小以适应整个框架?

How to resize tkinter Listbox to fit entire frame?

我在使用 tkinter 网格方法调整 Listbox 大小以适应整个框架时遇到了一些问题。

代码片段:


Label(master, text = 'Total Profit :').grid(row = 5, sticky = W)
Label(master, text = 'Total Loss: ').grid(row = 7, sticky = W)
Label(master, text = 'Day Profit :').grid(row = 5, column = 2, sticky = W)
Label(master, text = 'Day Loss :').grid(row = 7, column = 2, sticky = W)
Label(master, text = 'PORTFOLIO VALUE :').grid(row = 9, column = 0, sticky = W)
Label(master, text = 'CREATE ORDER (SYM, #): ').grid(row = 11, column = 0, sticky = W)


stepTwo = LabelFrame(master, text="ORDERS: ")
stepTwo.grid(rowspan=10, columnspan=10, sticky='nsew', 
             padx=5, pady=5, ipadx=5, ipady=5)



listbox = Listbox(stepTwo)
listbox.grid(rowspan = 10, columnspan = 10, sticky = 'nsew')

当前图形界面:

使用这么大的行号和列号没有意义。 stepTwo 内的网格独立于 master.

内的网格

在这种情况下,使用pack最简单:

listbox.pack(fill="both", expand=True)

如果你坚持使用grid,你需要遵循经验法则,你需要至少给一行和一列一个non-zero权重,以便网格知道如何分配任何额外的 space.

示例:

stepTwo.grid_rowconfigure(0, weight=1)
stepTwo.grid_columnconfigure(0, weight=1)
listbox.grid(row=0, column=0, sticky = 'nsew')