我正试图在python上移植一个项目2to3,但却被困在了tkinter中。你知道吗
在python2中,在tkinter的框架中添加菜单栏是没有问题的
但是python3发生了属性错误。(框架对象没有“tk\u menuBar”属性)
python2和python3在tkinter的框架中添加菜单栏有什么不同吗?你知道吗
class TkMap(Map, tkinter.Tk):
""" Map with Tkinter GUI functions """
def __init__(self, cols, rows, value,
width, height, widthMM, heightMM,
title, menu = None, keybindings = []):
""" TkMap extends Map and Tkinter """
Map.__init__(self, cols, rows, widthMM, heightMM)
tkinter.Tk.__init__(self)
self.title(title)
if menu == None:
menu = [('File',[['Exit',self.destroy]])]
keybindings.append( ("<Configure>", self.changeSize))
self.menuButtons = {}
self.debug = 0
self.application = 0
self.width = width
self.height = height
self.colScale = self.width / self.cols
self.rowScale = self.height / self.rows
self.addMenu(menu)
def addMenu(self, menu):
""" Create a menu """
self.mBar = tkinter.Frame(self,relief=tkinter.RAISED,borderwidth=2)
self.mBar.pack(fill=tkinter.X)
*for entry in menu:
self.mBar.tk_menuBar(self.makeMenu(self.mBar, entry[0],entry[1]))*
self.mBar.pack(side = "top")
另外,这是我的第一个问题,如果你能指出我关于不礼貌的错误,我将不胜感激。你知道吗
您不应该在python2或python3中使用
tk_menuBar
。该函数的docstring表示:注:TK3.6早在90年代初就过时了
无法将菜单附加到
Frame
小部件。您可以添加Menubutton
的实例来模拟菜单栏,但不会得到真正的菜单栏。你知道吗通过配置
menu
属性,可以将Menu
附加到根窗口或Toplevel
的实例。你知道吗相关问题 更多 >
编程相关推荐