Python 为什么我不能使用tkinter几何图形管理器栅格?
我正在尝试构建一个简单的tkinter GUI,但出现以下错误: _tkinter.TclError:无法在内部使用几何图形管理器栅格。它已经有了由pack管理的奴隶 这是我的密码:Python 为什么我不能使用tkinter几何图形管理器栅格?,python,tkinter,Python,Tkinter,我正在尝试构建一个简单的tkinter GUI,但出现以下错误: _tkinter.TclError:无法在内部使用几何图形管理器栅格。它已经有了由pack管理的奴隶 这是我的密码: file_menu = Menu(menu_bar, tearoff=0) file_menu.add_command(label='New') file_menu.add_separator() file_menu.add_command(label='Exit', command=_quit) menu_bar
file_menu = Menu(menu_bar, tearoff=0)
file_menu.add_command(label='New')
file_menu.add_separator()
file_menu.add_command(label='Exit', command=_quit)
menu_bar.add_cascade(label='File', menu=file_menu)
help_menu = Menu(menu_bar, tearoff=0)
help_menu.add_command(label='About')
menu_bar.add_cascade(label='Help', menu=help_menu)
tab_controller = ttk.Notebook(win)
tab_1 = ttk.Frame(tab_controller)
tab_controller.add(tab_1, text='NOAA')
tab_2 = ttk.Frame(tab_controller)
tab_controller.add(tab_2, text='Station IDs')
tab_3 = ttk.Frame(tab_controller)
tab_controller.add(tab_3, text='Images')
tab_4 = ttk.Frame(tab_controller)
tab_controller.add(tab_4, text='Open Weather Map')
tab_controller.pack(expand=1, fill='both')
weather_conditions_label_frame = ttk.LabelFrame(tab_1, text='Current Weather Conditions').grid(column=0, row=1, padx=WEATHER_CONDITIONS_LABEL_FRAME_PAD_X, pady=WEATHER_CONDITIONS_LABEL_FRAME_PAD_Y)
ttk.Label(weather_conditions_label_frame, text='Last Update').grid(column=0, row=1, sticky='E')
last_update_entry_var = tk.StringVar()
last_update_entry = ttk.Entry(weather_conditions_label_frame, width=ENTRY_WIDTH, textvariable=last_update_entry_var, state='readonly')
last_update_entry.grid(column=1, row=1, sticky='W')
有什么想法吗?
天气条件标签框架
是无
,因为你需要窗口条件标签框架=LabelFrame(…).grid(…)
。稍后,您将执行ttk.Entry(天气条件标签框架…)
操作,该操作将该条目放置在根窗口中,因为主窗口是None
tab\u controller
已使用pack
添加到根窗口中,因此当您尝试调用grid
时,会出现错误
解决方案是将小部件创建与小部件布局分开:
weather_conditions_label_frame = ttk.LabelFrame(...)
weather_conditions_label_frame.grid(...)
weather\u conditions\u label\u frame
是None
,因为您需要windows\u conditions\u label\u frame=LabelFrame(…).grid(…)
。稍后,您将执行ttk.Entry(天气条件标签框架…)
操作,该操作将该条目放置在根窗口中,因为主窗口是None
tab\u controller
已使用pack
添加到根窗口中,因此当您尝试调用grid
时,会出现错误
解决方案是将小部件创建与小部件布局分开:
weather_conditions_label_frame = ttk.LabelFrame(...)
weather_conditions_label_frame.grid(...)
这正是问题所在:您需要为几何体管理器做出选择,然后为父窗口小部件中的所有窗口小部件使用一个几何体管理器。您可能也希望在此处查看此答案:这正是问题所在:您需要为几何体管理器做出选择,然后为父窗口中的所有窗口小部件使用一个几何体管理器父窗口小部件。您也可以在此处查看此答案: