【发布时间】:2020-02-15 19:02:54
【问题描述】:
我在我的 Tkinter 应用程序中禁用菜单时遇到问题。只是我只想在某些页面上显示它们,我试图在我的应用程序的初始化功能中禁用它们,但这没有用,我试图在我的应用程序的显示框架功能中禁用它们但没有t 工作,我试图通过我的应用程序的起始页类禁用它们,因为我尝试使用 self.menubar 、 parent.menubar 和 controler.menubar;但似乎没有任何效果。我只会在每个单独的页面上对它们进行编码,但这是我发现甚至可以在任何页面上显示它们的唯一方法。任何帮助将非常感激。
class App(tk.Tk):
def __init__(self,*args,**kwargs):
tk.Tk.__init__(self,*args,**kwargs)
container = tk.Frame(self)
container.pack(side='top',fill='both',expand= True)
container.grid_rowconfigure(0,weight = 1)
container.grid_columnconfigure(0,weight = 1)
menubar = tk.Menu(container)
file = tk.Menu(menubar, tearoff = 0)
file.add_command(label='Exit', command = quit)
menubar.add_cascade(label='File',menu=file)
tk.Tk.config(self, menu=menubar)
self.frames = {}
for F in (StartPage):
frame = F(container,self)
self.frames[F] = frame
frame.grid(row=0,column=0,sticky='nsew')
page = F
self.show_frame(StartPage)
def show_frame(self,cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self,parent)
menubar.add_cascade(label='File',state=DISABLED)
label = ttk.Label(self, text='Start', font = LARGE_FONT).pack()
main = App()
main.mainloop()
【问题讨论】:
-
这是我能做的最好的了
-
我没有看到任何尝试禁用您的示例中的任何内容。你需要展示你尝试过的东西。
-
我第一次尝试编辑它,我也在show frames函数下用if语句尝试过,但没有奏效。
-
此代码不可能用于复制您的问题。它充满了错误。
标签: python-3.x tkinter menu