Tkinter中使用pandastable展示Excel处理结果无法设置表格位置如何解决
pandastable 表格位置定位失效解决方案
问题根因
Table构造参数中的x/y为表格内部视图的偏移量,并非父容器内的定位坐标,无法用于调整表格在窗口中的位置- 你当前使用
pack()布局管理frame,默认规则为组件从上到下排列,未指定对齐或边距参数 - 代码存在冗余实例化
Table对象、参数拼写错误、方法传参冗余的问题
可行解决方案
方案1:使用place布局实现绝对定位(符合你指定x/y坐标的需求)
直接控制frame的位置,表格跟随frame定位即可,修改后代码如下:
proc=df2[df2['Module'].isin(mdl)] print(proc) # 初始化frame并指定宽高匹配表格尺寸 frame=Frame(window, width=1500, height=700) # 直接指定frame在窗口内的坐标,对应你需要的x=20、y=50的位置 frame.place(x=20, y=50) # 删除冗余的table=Table(frame)代码 pt=Table(frame,dataframe=proc,showtoolbar=True,showstatusbar=True,rows=50,cols=11,width=1500,height=700, editable=True, enable_menus=True) # show方法无需重复传入proc,构造时已绑定数据 pt.show()
方案2:使用pack布局实现相对定位
如果不需要严格的绝对坐标,可通过pack的边距参数调整位置:
proc=df2[df2['Module'].isin(mdl)] print(proc) frame=Frame(window) # padx设置左右边距20,pady设置上下边距50,anchor='nw'指定从左上角开始对齐 frame.pack(padx=20, pady=50, anchor='nw') pt=Table(frame,dataframe=proc,showtoolbar=True,showstatusbar=True,rows=50,cols=11,width=1500,height=700, editable=True, enable_menus=True) pt.show()
额外注意事项
- 参数
showtoolbar不要拼写为showtoolsbar,否则工具栏无法正常显示 - 不要重复实例化Table对象,多余的
table=Table(frame)可直接删除 pt.show()无需重复传入dataframe参数,避免引发不必要的异常
内容的提问来源于stack exchange,提问作者reda elkassah
相关产品推荐
相关产品推荐

