二手车价格预测系统 GUI 开发:使用 Tkinter 创建主窗口
from tkinter import ttk
from tkinter import filedialog
from tkinter import *
import pandas as pd
from PIL import ImageTk, Image
class MainWindow:
def __init__(self):
self.master = tk.Tk()
# 设置背景图片
self.master.title('车辆价格预系统')
self.master.geometry('1000x600')
# 创建 canvas 控件
canvas = tk.Canvas(self.master, width=1000, height=300)
canvas.pack()
# 加载图片
img = Image.open('hhh.jpg')
img = img.resize((1000, 300), Image.ANTIALIAS)
img = ImageTk.PhotoImage(img)
# 在 canvas 上展示图片
canvas.create_image(0, 0, anchor='nw', image=img)
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)
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)
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)
# 设置事件处理函数
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):
pass
def My_window(self):
pass
def open_price_prediction(self):
pass
# 创建主窗口并运行
root = MainWindow()
root.mainloop()
将上述代码放在 __init__ 方法中,可以将图片放在标题栏下方。你也可以根据需要调整图片大小和位置。
原文地址: https://www.cveoy.top/t/topic/oxQS 著作权归作者所有。请勿转载和采集!