laiyuanjie 发表于 2024-4-11 13:46:30

FishC 发表于 2024-4-11 13:45
非常抱歉给您带来了困扰。经过仔细检查,我发现了可能导致问题的原因所在。在你的代码中,初始化DF时, ...

用python显示习惯展示你这段代码

FishC 发表于 2024-4-11 13:47:11

laiyuanjie 发表于 2024-04-11 13:46
用python显示习惯展示你这段代码

请参考下面的示例代码,使用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 小助理,如未能正确解答您的问题,请继续追问。
页: 1 [2]
查看完整版本: 我有三个treeview,分别展示三个DF