为了账号安全,请及时绑定邮箱和手机立即绑定

tkinter 属性错误 - 对象没有属性。我不明白为什么它找不到这个对象的属性

tkinter 属性错误 - 对象没有属性。我不明白为什么它找不到这个对象的属性

慕妹3146593 2021-12-21 15:09:08
我正在使用 tkinter 在 python 中创建一个类似胭脂的基于文本的冒险游戏,我正在尝试设置 GUI。我希望菜单栏在我进入主游戏屏幕后出现(所以在玩家点击“开始游戏”后)。出于某种原因,当我为它调用函数时,python 找不到我定义的菜单栏,我不明白为什么。几天来我一直在尝试不同的方法并在其他论坛上进行研究,但我还没有找到答案。我试过: - 创建一个函数 - 试图从另一个类中调用它的变量 - 重命名对象 - 检查缩进 - 据我所知,这很好我也尝试过正常创建菜单栏并在程序运行时加载它。(即不是在函数中,而是在类的“ init ”部分。)这有效,但我希望菜单栏稍后出现,而不是在开始时出现。这是我在 stackoverflow 上的第一篇文章,所以如果我的任何格式有点不对,我深表歉意,尤其是我展示的代码。我似乎无法正确突出显示 python 语法。我希望有人可以帮助我。谢谢!>.<EDIT1 (29/03/2019): 这是我得到的错误:Traceback (most recent call last):  File "C:\Users\***\Documents\Python\Games\FireofStromwarldv2.0\game_Main1.py", line 356, in <module>    game = FireofStromwarld()  File "C:\Users\***\Documents\Python\Games\FireofStromwarldv2.0\game_Main1.py", line 50, in __init__    self.frames[1] = GameMenu(parent = frmContainer, controller = self)  File "C:\Users\***\Documents\Python\Games\FireofStromwarldv2.0\game_Main1.py", line 130, in __init__    controller.CreateMenu()  File "C:\Users\***\Documents\Python\Games\FireofStromwarldv2.0\game_Main1.py", line 74, in CreateMenu    NewMenu = self.menuBar  File "C:\Users\***\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 2098, in __getattr__    return getattr(self.tk, attr)AttributeError: '_tkinter.tkapp' object has no attribute 'menuBar'[Finished in 0.8s]*** 只是为了审查我的用户名。
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

这是因为您controller.CreateMenu()在创建时调用,GameMenu()此时self.menuBar使用的 incontroller.CreateMenu()并不存在,因为self.menuBarGameMenu().

尝试self.menuBar = tkMenu(self)在声明之前的某个地方搬入__init__(...)课堂。FireofStromwarldself.frames[1] = GameMenu(parent = frmContainer, controller = self)


查看完整回答
反对 回复 2021-12-21
  • 1 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号