2016-11-27 2 views
1

파이썬의 방법에 익숙하지 않아 비슷한 설명이있는 몇 가지 다른 질문을 보았지만 해결할 수 없습니다.AttributeError : 메뉴 인스턴스에 '__len__'속성이 없습니다.

오류 :

Traceback (most recent call last): 
File "C:/Users/UT/PycharmProjects/tkinter/python_PET/main.py", line 16, in <module> 
    m = menu_bar_class(root) 
File "C:/Users/UT/PycharmProjects/tkinter/python_PET/main.py", line 14, in __init__ 
    self.master.config(self.menu) 
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1326, in configure 
    return self._configure('configure', cnf, kw) 
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1312, in _configure 
    cnf = _cnfmerge(cnf) 
File "C:\Python27\lib\lib-tk\Tkinter.py", line 114, in _cnfmerge 
    for c in _flatten(cnfs): 
AttributeError: Menu instance has no attribute '__len__' 

프로그램 :

당신은 키워드 인수로 메뉴에 전달해야
from Tkinter import * 
from tkFileDialog import * 
import tkMessageBox 
import ttk 
root = Tk() 

class menu_bar_class: 

    def __init__(self,master): 
     self.master = master 
     print("menu bar") 

     self.menu = Menu(self.master) 
     self.master.config(self.menu) 

m = menu_bar_class(root) 
root.mainloop() 

답변

5

:

self.master.config(menu=self.menu) 

당신이 위치 인수 전달 (따라서 menu= 부분없이), Tkin ter는 구성이있는 사전 (예 : {'menu': self.menu}) 또는 더 많은 시퀀스 또는 사전이 포함 된 시퀀스를 수신 할 것으로 기대합니다. self.menu이 아니기 때문에 오류가 표시됩니다.

관련 문제