import tkinter as tk
from tkinter import ttk
from tkinter import filedialog
import pandas as pd

class MainWindow:
    def __init__(self):
        self.master = tk.Tk()
        # 设置窗口标题
        self.master.title('车辆价格预测系统')
        self.master.geometry('1000x600')

        # 创建标题区域
        frame_title = tk.Frame(self.master)
        frame_title.pack(pady=10)

        # 添加欢迎标签
        welcome_label = tk.Label(frame_title, text='欢迎使用二手车价格预测系统', font=('Arial', 20))
        welcome_label.pack()

        # 创建按钮区域
        frame_buttons = tk.Frame(self.master)
        frame_buttons.pack(pady=10)

        # 布局按钮区域
        frame_buttons1 = tk.Frame(frame_buttons)
        frame_buttons1.grid(row=0, column=0, padx=5)
        frame_buttons2 = tk.Frame(frame_buttons)
        frame_buttons2.grid(row=0, column=1, padx=5)
        frame_buttons3 = tk.Frame(frame_buttons)
        frame_buttons3.grid(row=0, column=2, padx=5)
        frame_buttons4 = tk.Frame(frame_buttons)
        frame_buttons4.grid(row=0, column=3, padx=5)
        frame_buttons5 = tk.Frame(frame_buttons)
        frame_buttons5.grid(row=0, column=4, padx=5)

        # 创建 Treeview 控件所在的 Frame
        frame_treeview = tk.Frame(self.master)
        frame_treeview.pack(padx=5)

        # 定义 Treeview 列名
        columns = ('Name', 'Year', 'Kilometers Driven', 'Mileage', 'Engine', 'Power', 'Seats', 'Price')
        self.tree = ttk.Treeview(frame_treeview, columns=columns, show='headings', height=15, padding=0)
        for col in columns:
            self.tree.heading(col, text=col, anchor='center')

        # 添加滚动条
        vsb = ttk.Scrollbar(frame_treeview, orient='vertical', command=self.tree.yview)
        vsb.grid(row=0, column=1, sticky='ns')
        self.tree.configure(yscrollcommand=vsb.set)

        # 显示 Treeview
        self.tree.grid(row=2, column=0, padx=1, pady=1, sticky='nsew')

        # 设置按钮以及事件处理函数
        button_open = tk.Button(frame_buttons1, text='打开文件', font=('Arial', 12), command=self.open_file)
        button_open.grid(row=1 ,column=0, padx=5)

        button_other1 = tk.Button(frame_buttons2, text='数据预处理', font=('Arial', 12), bg='blue', fg='white',command=self.ok_window)
        button_other1.grid(row=0, column=0, padx=5)

        button_other2 = tk.Button(frame_buttons3, text='数据可视化', font=('Arial', 12), bg='green', fg='white',command=self.My_window)
        button_other2.grid(row=0, column=1, padx=5)

        button_other3 = tk.Button(frame_buttons4, text='预测结果', font=('Arial', 12), bg='red', fg='white', command=self.open_price_prediction)
        button_other3.grid(row=0, column=2, padx=5)

        button_exit = tk.Button(frame_buttons5, text='退出', font=('Arial', 12), command=self.master.quit)
        button_exit.grid(row=0, column=5, padx=5)

    # 打开 CSV 文件
    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)
            # 清空 Treeview
            for item in self.tree.get_children():
                self.tree.delete(item)
            # 填充数据
            for index, row in df.iterrows():
                self.tree.insert('', 'end', values=row.tolist())

    # 数据预处理功能
    def ok_window(self):
        # ... your code for data preprocessing ...
        pass

    # 数据可视化功能
    def My_window(self):
        # ... your code for data visualization ...
        pass

    # 预测结果展示功能
    def open_price_prediction(self):
        # ... your code for showing price prediction ...
        pass

# 创建主窗口并运行
root = MainWindow()
root.mainloop()

注意:

  1. 这只是一个简单的 GUI 界面示例,您需要根据实际需求添加数据预处理、数据可视化和预测结果展示的代码。
  2. 您需要安装必要的库,例如 tkinterpandasmatplotlib 等。
  3. 如果您想在背景添加图片,可以尝试使用 tkinter.CanvasImage 对象来实现。

请参考 tkinter 库的官方文档以获取更多信息:https://docs.python.org/3/library/tkinter.html

二手车价格预测系统 - 使用 Python Tkinter 创建 GUI

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

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