utk*_*agi 1 python tkinter python-2.7
我不熟悉python的方式,我在这里看到了其他一些类似描述的问题,但无法解决这个问题.
错误:
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__'
Run Code Online (Sandbox Code Playgroud)
程序:
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()
Run Code Online (Sandbox Code Playgroud)
您需要将菜单作为关键字参数传递:
self.master.config(menu=self.menu)
Run Code Online (Sandbox Code Playgroud)
当你传入一个位置参数(所以没有menu=部分)时,Tkinter期望接收带有配置的字典(so {'menu': self.menu})或包含更多序列或字典的序列.因为self.menu既不是,你会得到你看到的错误.
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |