Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter属性错误-对象没有属性。我不知道';我不明白为什么它可以';找不到此对象的属性_Python_Python 3.x_Windows_Tkinter - Fatal编程技术网

Python tkinter属性错误-对象没有属性。我不知道';我不明白为什么它可以';找不到此对象的属性

Python tkinter属性错误-对象没有属性。我不知道';我不明白为什么它可以';找不到此对象的属性,python,python-3.x,windows,tkinter,Python,Python 3.x,Windows,Tkinter,我正在使用tkinter用python创建一个类似胭脂的基于文本的冒险游戏,我正在尝试设置GUI。我希望在进入游戏主屏幕后出现菜单栏(因此在玩家单击“开始游戏”后)。出于某种原因,python在调用函数时找不到我定义的菜单栏,我不明白为什么 几天来,我一直在尝试不同的方法,并在其他论坛上进行研究,但我还没有找到答案。 我试过: -创建函数 -试图将其称为另一个类中的变量 -重命名对象 -检查了压痕-据我所知,它很好 我还尝试正常创建菜单栏,并在程序运行时加载它。(即,不是在函数中,而是在类的'i

我正在使用tkinter用python创建一个类似胭脂的基于文本的冒险游戏,我正在尝试设置GUI。我希望在进入游戏主屏幕后出现菜单栏(因此在玩家单击“开始游戏”后)。出于某种原因,python在调用函数时找不到我定义的菜单栏,我不明白为什么

几天来,我一直在尝试不同的方法,并在其他论坛上进行研究,但我还没有找到答案。 我试过: -创建函数 -试图将其称为另一个类中的变量 -重命名对象 -检查了压痕-据我所知,它很好

我还尝试正常创建菜单栏,并在程序运行时加载它。(即,不是在函数中,而是在类的'init'部分中。)这是可行的,但我希望菜单栏稍后出现,而不是出现在开始处

导入模块------------------------------------------------------- #------------------------------------------------------------------------ 将tkinter作为tk导入 从tkinter导入消息框 #设置GUI--------------------------------------------------------- #------------------------------------------------------------------------ #主窗口 Stromwarld类(tk.tk): 定义初始化(self,*args,**kwargs): tk.tk.\uuuuu初始化(self,*args,**kwargs) 自我名称(“斯特罗姆瓦尔德之火”) self.config(bg='grey') #定心窗 窗宽=900 窗高=600 ScreenWidth=self.winfo_ScreenWidth() ScreenHeight=self.winfo_ScreenHeight() xCoordinate=int((屏幕宽度/2)-(窗口宽度/2)) yCoordinate=int((屏幕高度/2)-(窗口高度/2)) self.geometry(“{}x{}+{}+{}.”格式(WindowWidth、WindowHeight、xCoordinate、yCoordinate)) 可自行调整大小(宽度=假,高度=假) #设置容器以容纳所有帧 frmContainer=tk.Frame(自) frmContainer.config(宽度=750, 高度=450, bg=‘灰色’) frmContainer.grid\u传播(0) frmContainer.grid(行=0,列=0,padx=75,pady=75) #列出可用帧 self.frames=[“主菜单”,“游戏菜单”] self.frames[0]=主菜单(父菜单=frmContainer,控制器=self) self.frames[1]=游戏菜单(父菜单=frmContainer,控制器=self) self.frames[0]。网格(行=0,列=0,粘性='nsew') self.frames[1]。网格(行=0,列=0,粘性='nsew') self.ShowFrame(0) #菜单栏(问题部分) self.menuBar=tk.Menu(self) self.GameMenu=tk.Menu(self.menuBar,tearof=0) self.GameMenu.add_命令(label='Exit', 字体=('arial',9), command=self.quit) self.menuBar.add_cascade(标签='Game', menu=self.GameMenu) self.RemoveFunc() def显示框(自身,页面名称): frame=self.frames[pagename] frame.tkraise() def创建菜单(自身): NewMenu=self.menuBar self.configure(菜单=新建菜单) def RemoveFunc(自): emptyMenu=tk.菜单(自身) self.configure(菜单=清空菜单) #主菜单 类主菜单(tk.Frame): 定义初始化(自、父、控制器): tk.Frame.\uuuu init\uuuuu(自,父) self.controller=控制器 self.config(bg='grey') #主菜单上的对象 lblTitle=传统标签(自, text=“斯特罗姆瓦尔德之火”, 字体=('Arial',28',粗体'), fg=‘棕色’, bg=‘灰色’, justify='center') btnStart=tk.按钮(自身, text=“开始游戏”, 字体=('Arial',16), bg=‘灰色’, 卸压=‘平’, command=lambda:controller.ShowFrame(1)) btnExit=tk.按钮(自身, text=“退出”, 字体=('Arial',16), bg=‘灰色’, 卸压=‘平’, 宽度=9, command=self.quit) #主窗口对象的定位 lblTitle.grid(行=0,列=0,padx=178,pady=75) btnStart.grid(行=1,列=0,pady=(50,20)) btnExit.grid(行=2,列=0) #游戏菜单 类游戏菜单(tk.Frame): 定义初始化(自、父、控制器): tk.Frame.\uuuu init\uuuuu(自,父) self.controller=控制器 self.config(bg='grey') #创建菜单库 controller.CreateMenu() #游戏菜单上的对象 #玩家和怪物统计框 frmPlayerStats=传统帧(自, 宽度=180, 高度=150, 边框宽度=2, 浮雕=‘山脊’) frmPlayerStats.grid_传播(0) frmMonStats=传统框架(自身, 宽度=180, 高度=80, 边框宽度=2, 浮雕=‘凹槽’) frmMonStats.grid_传播(0) #球员统计 lblPlayerName=tk.Label(frmPlayerStats, text=“Player:”, 字体=('arial',13)) lblPlayerLevel=tk.标签(frmPlayerStats, text=“Lvl:1”, 字体=('arial',10)) LBLPlayerPtitle
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]