调用tkinter的Canvas.create_window方法触发IndexError如何解决?
问题原因
tkinter的create_window() 方法对前两个坐标参数有特殊要求,必须以位置参数形式传入,不支持使用x=、y=的关键字参数写法,这是其底层实现的固有设计。
你代码中调用create_window时将坐标以关键字参数传入,导致方法内部参数解析逻辑失败,触发IndexError报错。
解决方案
将create_window调用中的x、y参数改为位置参数即可,其余参数如window仍可正常使用关键字参数:
# 原错误写法 # self.c.create_window(x=CELL_SIZE*col, # y=CELL_SIZE*row, # window=b) # 修正后写法 self.c.create_window(CELL_SIZE*col, CELL_SIZE*row, window=b)
修改完成后将CANVAS常量设为True运行,即可正常将按钮或自定义控件放置到画布上。
内容的提问来源于stack exchange,提问作者Neil_UK
相关产品推荐
相关产品推荐

