|

楼主 |
发表于 2024-4-11 13:44:20
|
显示全部楼层
import tkinter as tk
from datetime import timedelta,date
from Get_All_Sheet import get_refuel_sheet
from tkinter import filedialog
from tkinter import ttk,PhotoImage
import pandas as pd
import os
from Path import path_all
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 = ["日期","车牌","人事部升数",f"核对方升数"]
self.liters_treeview['columns'] = self.liters_columns
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.car_treeview.column(column="公里数",width=80,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 = ["日期","加油升数","人事部车牌",f"核对方车牌"]
self.car_treeview['columns'] = self.columns
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")
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__':
from MainPage import *
root = tk.Tk()
MainPage(root)
root.mainloop()
我这段代码,,,,里面的:
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()
单独执行一项treeview就可以展示,,为什么两个一起就没办法
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.show_liters_treeview()
这样就有办法展示,,,
self.df = get_refuel_sheet
self.df.set_path(self.human_sheet_path,self.object_sheet_path)
self.diff_car_df = self.df.show_car_diff()
self.show_car_treeview()
这样也有办法展示,,
唯独两个一起就没办法,,,我这两个DF是不同的两个 |
|