У меня проблема с обновлением embedded plot
, так как я хочу обновить sh область графика, когда пользователь хочет увидеть другие варианты. Я уже искал здесь. Я перепробовал много вещей, но не смог найти дорогу. когда я использую pack geometry manager
, вместо встроенной предыдущей появляются новые встроенные графики. С grid manager
он работает, но на этот раз размер графика не охватывает весь canvas
, а размер frame
изменяется. Итак, я нашел способ обновить. Возможно, это не очень хороший способ сделать это, но я новичок в кодировании. так что мне интересно, как я могу сделать с менеджером геометрии сетки с этой частью pack(fill = BOTH, expand = True)
я пробовал эту опцию `grid (row = 0, column = 0, sticky =" nsew ") '?
Некоторые части моего кода: Моим решением было уничтожить текущий кадр и создать новый для обновления графика.
frm_plot=Frame(root,bd=5,relief=SUNKEN,bg="white",width=450,height=350)
frm_plot.grid(row=0,column=0,columnspan=3,sticky="N"+"W"+"S"+"E")
frm_plot.grid_propagate(0)
def plotarea2():
#new frame
frm_plot = Frame(root, bd=5, relief=SUNKEN, bg="white", width=450, height=350)
frm_plot.grid(row=0, column=0, columnspan=3, sticky="N" + "W" + "S" + "E")
frm_plot.grid_propagate(0)
if comboplottype.get() == 'Line':
add_btn = Button(frm_btn, text="add", command=curves, state=DISABLED)
add_btn.grid(row=4, column=0, sticky="nsew")
fig = Figure(figsize=(5, 4))
ax1 = fig.add_subplot(111)
for a in range(len(selected_colors)):
lines = ax1.plot(list(df_la[lst[a]]),color=selected_colors[a],linewidth=Linewidth_size_scale.get())
canvas = FigureCanvasTkAgg(fig, master=frm_plot) # A tk.DrawingArea.
canvas.draw()
plt.show(block=TRUE)
toolbar = NavigationToolbar2Tk(canvas, frm_plot)
toolbar.update()
def on_key_press(event):
print("you pressed {}".format(event.key))
key_press_handler(event, canvas, toolbar)
canvas.mpl_connect("key_press_event", on_key_press)
canvas.get_tk_widget().pack(side="top", fill="both", expand=True)
plt_btn_canvas = Button(frm_btn, text="Plot", command=plotarea2,state=DISABLED)
plt_btn_canvas.grid(row=5, column=0, sticky="nsew")
color_add_btn = Button(frm_colors, text="Add Color for lines", command=colors_to_curves,state=DISABLED)
color_add_btn.grid(row=4, column=0, columnspan=2, sticky="nsew")
def reset():
plt_btn_canvas = Button(frm_btn, text="Plot", command=plotarea2)
plt_btn_canvas.grid(row=5, column=0, sticky="nsew")
color_add_btn = Button(frm_colors, text="Add Color for lines", command=colors_to_curves)
color_add_btn.grid(row=4, column=0, columnspan=2, sticky="nsew")
add_btn = Button(frm_btn, text="add", command=curves)
add_btn.grid(row=4, column=0, sticky="nsew")
lst.clear()
selected_colors.clear()
frm_plot.destroy()