二手车价格预测系统 - Python GUI 应用
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)
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 open_background_image(self):
file_path = filedialog.askopenfilename(defaultextension='.png', filetypes=(('PNG files', '*.png'), ('All Files', '*.*')))
if file_path:
self.master.configure(background='white') # 先将背景设置为白色
img = Image.open(file_path)
img = img.resize((1000, 600), Image.ANTIALIAS) # 调整图片大小
img = ImageTk.PhotoImage(img)
panel = tk.Label(self.master, image=img)
panel.image = img
panel.place(x=0, y=0) # 放置图片
原文地址: https://www.cveoy.top/t/topic/oxQR 著作权归作者所有。请勿转载和采集!