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

Tkinter开发Flappy Bird报'_tkinter.tkapp'无create_rectangle属性如何解决

错误原因
  • tkinter.Tk()是主窗口实例,仅作为容器承载控件,不存在绘制图形的create_rectangle方法
  • 你把主窗口对象传入了GameFrame类命名为self.canvas,绘制时错误调用了主窗口的方法,实际应该调用你在create_frame中生成的tkinter.Canvas实例self.game_frame的绘制方法。
修复代码

只需要修改GameFrame类的create_bird方法即可:

def create_bird(self):
    # 把原来的self.canvas换成self.game_frame
    self.bird = self.game_frame.create_rectangle(
        GameFrame._X_BIRD,
        GameFrame._Y_BIRD,
        GameFrame._X_BIRD_2,
        GameFrame._Y_BIRD_2,
        fill=GameFrame._BIRD_COLOUR
    )
可选优化建议

为了避免后续再出现类似的对象混淆问题,可以调整变量命名:把Menu类中的主窗口对象从self.canvas重命名为self.root或者self.main_window,明确区分主窗口和画布控件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 06:24:03