为了账号安全,请及时绑定邮箱和手机立即绑定

Tkinter gui 仅在调整窗口大小时绘制图形

Tkinter gui 仅在调整窗口大小时绘制图形

素胚勾勒不出你 2023-09-05 15:26:42
我有一个脚本,将一个简单的情节嵌入到 Tkinter gui 中。有一个用于绘图的按钮,当按下它时,它似乎什么也没做,但如果窗口稍微调整大小,绘图就会弹出。gui 窗口足够大以包含情节,我在这里做错了什么?代码print('\n'*3)import tkinter as tkimport matplotlib.pyplot as plt  from matplotlib.backends.backend_tkagg import FigureCanvasTkAggfrom matplotlib.figure import Figure#MAKE ROOT WINDOWroot = tk.Tk()root.title("Tab Widget")#root.geometry("600x450")#MAKE A FIGURE OBJECTmy_figure = Figure(figsize = (4, 4), dpi = 100) #MAKE A FRAME WIDGETframe1 = tk.Frame(root, bd=2, relief=tk.GROOVE)frame1.pack(side=tk.LEFT, anchor=tk.N, fill=tk.BOTH, expand=True)frame2 = tk.Frame(root, bd=2, relief=tk.GROOVE)frame2.pack(side=tk.RIGHT)#MAKE A CANVAS OBJECTmy_canvas = FigureCanvasTkAgg(my_figure, master = frame1) # creating the Tkinter canvas containing the Matplotlib figure  # TURN THE CANVAS OBJECT INTO A CANVAS WIDGETmy_canvas.get_tk_widget().pack() # placing the canvas on the Tkinter windowmy_canvas.draw()def plotData():    plot1 = my_figure.add_subplot(111) # adding the subplot     x = [1,2,3,4,5]    y = [11, 3, 6, 9,12]    plot1.plot(x, y, marker='o', c='b')# MAKE BUTTON TO PLOT GRAPHbutton1 = tk.Button(frame2, text = "Plot", command = plotData, relief = tk.GROOVE, padx =20, pady =20 )button1.pack(side="right")root.mainloop()期望的结果无需调整大小即可查看绘图的 GUI 窗口。
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

您需要my_canvas.draw()在以下时间结束时致电plotData():


def plotData():

    plot1 = my_figure.add_subplot(111) # adding the subplot 

    x = [1,2,3,4,5]

    y = [11, 3, 6, 9,12]

    plot1.plot(x, y, marker='o', c='b')

    my_canvas.draw() # draw the graph


查看完整回答
反对 回复 2023-09-05
  • 1 回答
  • 0 关注
  • 60 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信