我正在創建一個文本編輯器,我正在嘗試編輯默認的Mac應用程序菜單。 < -The菜單爲什麼不顯示此tkinter菜單窗口小部件的一部分?
我跟着this教程編輯它,它正常工作對自己是這樣的:
from Tkinter import *
root=Tk()
menubar = Menu(root)
appmenu = Menu(menubar, name='apple')
menubar.add_cascade(menu=appmenu)
appmenu.add_command(label='About My Application')
appmenu.add_separator()
root['menu'] = menubar
root.mainloop()
但是當我嘗試在我的菜單欄項目添加在另一個腳本我的文字編輯器,它只會顯示文本編輯器位而不顯示編輯的應用程序菜單。
我怎樣才能同時顯示?
問題代碼:
from Tkinter import *
class Main(object):
def __init__(self, root):
root.title("PyText")
#Text editor menu items
self.m1=Menu(root)
self.fm=Menu(self.m1, tearoff=0)
self.fm.add_command(label="New", command=self.saveas)
self.fm.add_command(label="Open", command=self.saveas)
self.fm.add_command(label="Save", command=self.saveas)
self.fm.add_command(label="Save as...", command=self.saveas)
self.fm.add_command(label="Close", command=self.saveas)
self.fm.add_separator()
self.fm.add_command(label="Exit", command=root.quit)
self.m1.add_cascade(label="File", menu=self.fm)
self.editmenu = Menu(self.m1, tearoff=0)
self.editmenu.add_command(label="Undo", command=self.saveas)
self.editmenu.add_separator()
self.editmenu.add_command(label="Cut", command=self.saveas)
self.editmenu.add_command(label="Copy", command=self.saveas)
self.editmenu.add_command(label="Paste", command=self.saveas)
self.editmenu.add_command(label="Delete", command=self.saveas)
self.editmenu.add_command(label="Select All", command=self.saveas)
self.editmenu.add_separator()
self.m1.add_cascade(label="Edit", menu=self.editmenu)
#Problem code here
self.appmenu = Menu(self.m1, name="apple", tearoff=0)
self.m1.add_cascade(menu=self.appmenu)
self.appmenu.add_command(label="About PyText")
self.appmenu.add_separator()
root.config(menu=self.m1)
self.t1=Text(root)
self.t1.config(width=90, height=40)
self.t1.grid()
def saveas(self):
self.filewin = Toplevel()
self.filewin.title("Name")
self.e1=Entry(self.filewin)
self.e1.grid()
self.button = Button(self.filewin, text="Save", command=self.save)
self.button.grid()
def save(self):
with open(self.e1.get(), "w") as f: # this instance variable can be accessed
f.write(self.t1.get('1.0', 'end'))
root = Tk()
app = Main(root)
root.mainloop()
從教程中的位不適合我,而不是顯示'apple'我得到'()'。只需更改它以匹配您的其他菜單代碼。 'self.m1.add_cascade(menu = self.appmenu,label =「apple」)' –