首页 > 解决方案 > 如何调整 tkinter 列表框的大小以适合整个框架?

问题描述

我在Listbox使用 tkinter 网格方法调整 a 以适应整个框架时遇到了一些麻烦。

代码片段:


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')

当前图形用户界面:

1

标签: pythontkinterlistbox

解决方案


使用如此庞大的行数和列数是没有意义的。里面的网格stepTwo独立于里面的网格master

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

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

如果您坚持使用grid,则需要遵循经验法则,您需要为至少一行和一列赋予非零权重,以便网格知道如何分配任何额外空间。

例子:

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

推荐阅读