You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter开发Pong游戏报错Cannot find reference 'pack' in 'None'求助

问题原因及解决办法

错误原因

  • tkinter中,.place()方法的返回值是None,你将tk.Canvas(...).place(x=1,y=0)直接赋值给canvas变量,导致canvas实际是None,调用canvas.pack()自然会出现找不到pack引用的错误。
  • 同时犯了布局管理器混用的错误:pack()和place()是tkinter的两种不同布局方式,不能同时用于同一个组件。

修复后的代码

import tkinter as tk

window = tk.Tk()
window.geometry('600x600')

canvas_width, canvas_height = 10, 100
# 先创建Canvas实例,再调用布局方法
canvas = tk.Canvas(window, width=canvas_width, height=canvas_height, bg="black")
# 选择一种布局方式,这里用pack放在左侧
canvas.pack(side=tk.LEFT)

# 绘制左侧的矩形(Pong球拍)
canvas.create_rectangle(0, 0, canvas_width, canvas_height, fill="white")

window.mainloop()

补充说明

如果偏好使用place()布局,代码可修改为:

import tkinter as tk

window = tk.Tk()
window.geometry('600x600')

canvas_width, canvas_height = 10, 100
# 分开创建Canvas和调用布局方法
canvas = tk.Canvas(window, width=canvas_width, height=canvas_height, bg="black")
canvas.place(x=1, y=0)
canvas.create_rectangle(0, 0, canvas_width, canvas_height, fill="white")

window.mainloop()

内容的提问来源于stack exchange,提问作者alittles1lly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:20:28