需要添加以下代码来创建主窗口并运行应用程序:

import tkinter as tk
from tkinter import filedialog
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

class NextWindow:
    def __init__(self,master):
        self.master = master
        self.master.title("不同年份车价均值")
        self.master.geometry('800x600')
        # 创建控件
        label_info = tk.Label(self.master, text="请选择数据文件:")
        label_info.pack(pady=20)

        button_open = tk.Button(self.master, text="打开文件", font=("Arial", 12), command=self.open_file)
        button_open.pack(pady=10)

        self.figure = plt.Figure(figsize=(6, 4))
        self.canvas = FigureCanvasTkAgg(self.figure, master=self.master)
        self.canvas.get_tk_widget().pack(fill=tk.BOTH, expand=True)

        button_exit = tk.Button(self.master, text="退出", font=("Arial", 12), command=self.master.quit)
        button_exit.pack(pady=20)
        
    def open_file(self):
        file_path = filedialog.askopenfilename(defaultextension=".csv", filetypes=(("CSV files", "*.csv"), ("All Files", "*.*")))
        if file_path:
            df = pd.read_csv(file_path)
            year_price_mean = df.groupby("Year")["Price"].mean()
            self.figure.clear()
            ax = self.figure.add_subplot(111)
            ax.plot(year_price_mean.index, year_price_mean, 'o-', linewidth=2)
            ax.set_xlabel("Year")
            ax.set_ylabel("Mean Price")
            ax.set_title("Year vs Mean Price")
            self.canvas.draw_idle()

    def run(self):
        self.master.mainloop()

if __name__ == '__main__':
    root = tk.Tk()
    app = NextWindow(root)
    app.run()

在这个版本中,我们创建了一个名为root的主窗口,将其传递给NextWindow类的实例,然后运行主循环以启动应用程序。同时,我们对__init__()方法进行了一些修改,以便它能够接收一个主窗口作为参数,并将其用作父级窗口

class NextWindow def __init__selftop_level selftop_level = top_level #selftop_leveltitle不同年份车价均值 selftop_levelgeometry800x600 # 创建控件 label_info = tkLabelselfmast

原文地址: https://www.cveoy.top/t/topic/gEM4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录