python-3.x - 我很难在我的 tkinter 应用程序中放置菜单
问题描述
我想我在编写此代码时所做的方式是打开所有窗口,然后在需要时显示它们我刚刚开始 tkinter 并开始按照我想要的方式塑造它。我有多个窗口,但只显示我希望菜单显示的第一个窗口的代码,这就是为什么我在显示框架中有一个 try 和 except 子句。我在另一个 stackoverflow 问题上发现了一个类似的代码,我遇到了同样的问题,但修复不起作用,我不知道该怎么做。请帮忙。这是我的代码:
class TradingBotapp(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)
self.frames = {}
for F in (StartPage,Login,Register,Main_Page,InitalSetup):
frame = F(container,self)
self.frames[F] = frame
frame.grid(row=0,column=0,sticky='nsew')
self.show_frame(Main_Page)
def show_frame(self,cont):
frame = self.frames[cont]
try:
self["menu"] = frame.menu
except Exception as e:
print(e)
frame.tkraise()
class Main_Page(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self,parent)
self.init_window(controller)
label = tk.Label(self, text='Main Page', font = LARGE_FONT).pack()
def init_window(self,controller):
StockWatchList = ['Dave','Pam','Girl','Guy','Boy']
self.grid(column=0,row=0)
menu = tk.Menu(self)
file = tk.Menu(menu)
file.add_command(label='Exit')
StockWatch = tk.Menu(menu)
for stock in StockWatchList:
StockWatch.add_command(label=stock)
self.menu
app = TradingBotapp()
app.mainloop()
关于stackoverflow问题的修复是放入self["menu"] = frame.menu
显示框架并将其放置self.menu
在您想要显示的位置而不是放置我认为self.master.config(menu=menu)
任何帮助将不胜感激谢谢!
解决方案
推荐阅读
- c++ - 将带有 unicode 编码的 char[] 转换为 filesystem::path
- javascript - AngularJS Jasmine 控制器测试,没有挂起的刷新请求和不满足的请求 GET
- javascript - 为什么此错误显示“非法参数:未定义,字符串”?
- javascript - 反应 - 改变状态不更新从变量呈现的元素
- amazon-ecs - 使用 ECS 服务发现时如何在应用程序中解析 SRV 地址
- flutter - Flutter Html View 导入时返回错误
- scala - 如何在akka http中发送文件以响应名称
- azure - IIS - 将文件夹移动到 Azure 文件共享(并将它们作为虚拟目录访问) - App_Data 文件夹问题
- javascript - Fabric JS边界框“拥抱”/包围所选对象
- python - 如何在 Dash 中为 DatePickerRange 和 Graph 进行回调