Matplotlib 使我的 GUI tkinter 应用程序崩溃

Matplotlib crashes my GUI tkinter application

我有一个我构建的 GUI Tkinter Python 应用程序。但是,我正在为情节而苦苦挣扎。 我不愿意在里面绘图,而只是生成绘图并保存它们。 问题是当我点击按钮生成图表时,Tkinter GUI 崩溃了。

请注意,关于此问题,我已尝试在网上找到的所有解决方案。 请帮我。提前致谢。

from __future__ import print_function
import ast
import json

import matplotlib

matplotlib.use("TkAgg")
from matplotlib import pyplot as plt

import pandas as pd
import seaborn as sns


`if __name__ == "__main__":`
screen = Tk()
screen.title('My App')
screen.geometry('800x800')
screen.config(bg='#453')

f = ('sans-serif', 13)
btn_font = ('sans-serif', 10)
bgcolor = '#3399ff'

# frames
frame = Frame(screen, padx=20, pady=20, bg=bgcolor)
frame.pack(expand=True, fill=BOTH)

# label widgets
Label(
    frame,
    text="Company",
    font=f,
    bg=bgcolor
).grid(row=0, column=0, sticky='w')

Label(
    frame,
    text="Source Date",
    font=f,
    bg=bgcolor
).grid(row=1, column=0, sticky='w')

Label(
    frame,
    text="Destination Date",
    font=f,
    bg=bgcolor
).grid(row=2, column=0, sticky='w')

# entry widgets
comp = Entry(frame, width=21, font=f)
comp.grid(row=0, column=1)

src_date = DateEntry(frame, selectmode='day', date_pattern='dd/mm/yyyy', width=19, font=f)

src_date.grid(row=1, column=1)

dest_date = DateEntry(frame, selectmode='day', date_pattern='dd/mm/yyyy', width=19, font=f)
dest_date.grid(row=2, column=1)

clear_dates(src_date, dest_date)

# Buttons & Actions
btn_frame = Frame(frame, bg=bgcolor)
btn_frame.grid(columnspan=2, pady=(50, 0))

# default inputs for testing
comp.insert(0, 'Enter Company Name')

# action buttons

submit_btn = Button(
    btn_frame,
    text='Generate Word',
    command=validate_company_and_generate_report,  # generate
    font=btn_font,
    padx=10,
    pady=5
)
submit_btn.pack(side=LEFT, expand=True, padx=(15, 0))

clear_btn = Button(
    btn_frame,
    text='Clear',
    command=clear_inputs(comp, src_date, dest_date),
    font=btn_font,
    padx=10,
    pady=5,
    width=7
)
clear_btn.pack(side=LEFT, expand=True, padx=15)

exit_btn = Button(
    btn_frame,
    text='Exit',
    command=lambda: screen.destroy(),
    font=btn_font,
    padx=10,
    pady=5
)
exit_btn.pack(side=LEFT, expand=True)

screen.mainloop()

单击“生成单词”按钮后执行的命令本质上是绘制各种 charts.Not。

通过为 matplotlib 使用另一个线程解决了!