如何移除tkinter框架中pandastable组件周边的多余空白区域
解决方案
出现多余空白是pandastable默认配置和tkinter布局未配置填充属性共同导致的,按以下步骤修改即可:
- 关闭pandastable默认自带的多余组件
侧边空白列是默认开启的行号索引列,底部空白是预留的编辑行/工具栏/状态栏占位,实例化Table时添加对应参数关闭即可:
# 实例化时添加禁用多余元素的参数 g_pt = Table(summaryframe, dataframe=gluc_df, showindex=False, # 关闭左侧行号列,消除侧边空白 showtoolbar=False, # 关闭顶部工具栏 showstatusbar=False, # 关闭底部状态栏 maxrows=len(gluc_df) # 限制仅显示df实际行数,消除底部空白行,无需关闭编辑功能 )
- 让表格填充满父Frame
pandastable的show()方法默认不会自动填满父容器,需要手动设置布局参数:
g_pt.show() # 新增这一行,让表格占满整个父Frame g_pt.pack(fill='both', expand=True) # 自动调整列宽适配内容,消除横向空白 g_pt.adjustColumnWidths()
以上配置对k_pt做相同修改即可。
3. 调整父容器布局权重
你当前使用grid布局放置两个Frame,需要给父容器的对应行列设置拉伸权重,让Frame占满分配的300px总宽度:
# 在放置summaryframe和ketsummaryframe之前添加以下代码,给父容器normal_window配置grid权重 normal_window.grid_rowconfigure(1, weight=1) normal_window.grid_columnconfigure(0, weight=1) normal_window.grid_columnconfigure(1, weight=1) # 放置Frame时也可以添加sticky参数让Frame填满分格 summaryframe.grid(row = 1, column = 0, sticky='nsew') ketsummaryframe.grid(row = 1, column = 1, sticky='nsew')
如果还有多余的纵向空白,可以手动设置行高适配内容:
# 根据你的内容调整行高数值即可 g_pt.rowheight = 22 k_pt.rowheight = 22
内容的提问来源于stack exchange,提问作者mgood13
相关产品推荐
相关产品推荐

