|
发表于 2024-4-11 13:47:11
|
显示全部楼层
请参考下面的示例代码,使用Python Tkinter库展示了你提供的代码:
- import tkinter as tk
- from datetime import timedelta, date
- from path_all import get_refuel_sheet
- from tkinter import filedialog
- from tkinter import ttk
- class FirstFrame(tk.Frame):
- def __init__(self, root):
- super().__init__(root)
- self.default_open_path = "d:/"
- self.l_frame = tk.Frame(self)
- self.l_frame.grid(row=0, column=0, pady=30)
- self.r_frame = tk.Frame(self)
- self.r_frame.grid(row=0, column=1, pady=30)
- self.create_page()
-
- def get_human_sheet_path(self):
- self.human_sheet_path = filedialog.askopenfilename(initialdir=self.default_open_path)
-
- def get_object_sheet_path(self):
- self.object_sheet_path = filedialog.askopenfilename(initialdir=self.default_open_path)
-
- def road_table_label(self):
- self.service_labelframe = tk.LabelFrame(self.l_frame, text="载入表格的区域")
- self.human_sheet_botton = tk.Button(self.service_labelframe, text="人事部加油表格", command=self.get_human_sheet_path)
- self.human_sheet_botton.grid(row=0, column=0, pady=10, padx=8)
- self.split_line_label = tk.Label(self.service_labelframe, text="-" * 10, font=20)
- self.split_line_label.grid(row=1, column=0, pady=5, padx=5)
- self.object_sheet_botton = tk.Button(self.service_labelframe, text="核对方加油表格", command=self.get_object_sheet_path)
- self.object_sheet_botton.grid(row=2, column=0, pady=10, padx=8)
- self.split_line_label_2 = tk.Label(self.service_labelframe, font=20)
- self.split_line_label_2.grid(row=3, column=0, pady=5, padx=5)
- self.split_line_label_3 = tk.Label(self.service_labelframe, text="-" * 10, font=20)
- self.split_line_label_3.grid(row=5, column=0, pady=5, padx=5)
- self.get_df_botton = tk.Button(self.service_labelframe, text="点击载入表格", command=self.get_df)
- self.get_df_botton.grid(row=6, column=0, pady=5, padx=5)
- self.split_line_label_4 = tk.Label(self.service_labelframe, font=20)
- self.split_line_label_4.grid(row=7, column=0, pady=5, padx=5)
- self.service_labelframe.pack(padx=20, pady=10, anchor=tk.N)
-
- def get_df(self):
- self.df = get_refuel_sheet()
- self.df.set_path(self.human_sheet_path, self.object_sheet_path)
- self.diff_liters_df = self.df.show_liters_diff()
- self.diff_car_df = self.df.show_car_diff()
- self.show_liters_treeview()
- self.show_car_treeview()
-
- def show_table_label(self):
- self.diff_liters()
- tk.Label(self.r_frame).pack(pady=5)
- self.diff_data()
- tk.Label(self.r_frame).pack(pady=5)
- self.diff_car()
- tk.Label(self.r_frame).pack(pady=5)
- self.human_have_not()
- tk.Label(self.r_frame).pack(pady=5)
- self.other_have_not()
-
- def diff_liters(self):
- self.show_liters_table_frame = tk.LabelFrame(self.r_frame, text="加油升数不一致:", labelanchor=tk.N, font=15, fg="blue")
- self.liters_treeview = ttk.Treeview(self.show_liters_table_frame, height=5, show="headings")
- self.liters_treeview.pack()
- self.liters_columns = self.liters_treeview
- self.show_liters_table_frame.pack()
- for column in self.liters_columns:
- self.liters_treeview.heading(column, text=column)
- self.liters_treeview.column(column="日期", width=75, anchor="e")
- self.liters_treeview.column(column="车牌", width=100, anchor="e")
- self.liters_treeview.column(column="人事部升数", width=80, anchor="e")
- self.liters_treeview.column(column=f"核对方升数", width=80, anchor="e")
-
- def show_liters_treeview(self):
- liters_df = self.diff_liters_df
- self.liters_treeview.delete(*self.liters_treeview.get_children())
- for index, row in liters_df.iterrows():
- self.liters_treeview.insert("", "end", values=row.tolist())
-
- def diff_car(self):
- self.show_table_frame = tk.LabelFrame(self.r_frame, text="加油车子不一致:", labelanchor=tk.N, font=15, fg="blue")
- self.car_treeview = ttk.Treeview(self.show_table_frame, height=5, show="headings")
- self.car_treeview.pack()
- self.columns = self.car_treeview
- self.show_table_frame.pack()
- for column in self.columns:
- self.car_treeview.heading(column, text=column)
- self.car_treeview.column(column="日期", width=80, anchor="e")
- self.car_treeview.column(column="加油升数", width=80, anchor="e")
- self.car_treeview.column(column="人事部车牌", width=80, anchor="e")
- self.car_treeview.column(column="核对方车牌", width=80, anchor="e")
-
- def show_car_treeview(self):
- car_df = self.diff_car_df
- print("jiushiwo")
- self.car_treeview.delete(*self.car_treeview.get_children())
- for index, row in car_df.iterrows():
- self.car_treeview.insert("", "end", values=row.tolist())
-
- def create_page(self):
- self.road_table_label()
- self.show_table_label()
- if __name__ == '__main__':
- root = tk.Tk()
- FirstFrame(root).pack()
- root.mainloop()
复制代码
希望这个示例代码能帮助到你!如果还有其他问题,请随时向我提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|