我正在使用 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.menuBar
在GameMenu()
.
嘗試self.menuBar = tkMenu(self)
在聲明之前的某個地方搬入__init__(...)
課堂。FireofStromwarld
self.frames[1] = GameMenu(parent = frmContainer, controller = self)
添加回答
舉報
0/150
提交
取消