Я хочу, чтобы пользователь щелкнул по кнопке под названием «выбрать папку», и это позволило ему выбрать папку из своего каталога, а затем по кнопке под названием «выберите csv», и это позволило ему выбрать csv. Затем я хочу, чтобы пользователь щелкнул разницу в цене, где он получит эти пути к папкам и найдет разницу в цене в файле.
Я создал функции для получения пути к папке и csv, но у меня возникают проблемы с возвратом результатов от пользователя на avgprice()
.
Вот код, который у меня есть на данный момент:
import tkinter as tk
global folder_path
import tkinter.ttk
from tkinter import filedialog
from tkinter import *
import pandas as pd
from tkinter.filedialog import askopenfilename
LARGE_FONT= ("Verdana", 12)
class SeaofBTCapp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
frame = StartPage(container, self)
self.frames[StartPage] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = tk.Label(self, text="BTC Price Difference", font=LARGE_FONT)
label.pack(pady=10,padx=10)
first_window_button = tk.Button(self, text="select Folder", command= self.browse_button)
first_window_button.pack()
first_window_csv_button = tk.Button(self, text="select csv", command= self.import_csv_data)
first_window_csv_button.pack()
first_window_diffbutton = tk.Button(self, text="Price difference", command= self.avgprice)
first_window_diffbutton.pack()
closebutton=tk.Button(self,text="Quit",command=controller.destroy)
closebutton.pack()
def browse_button(self):
# Allow user to select a directory and store it in global var
#called folder_path
folder_path = StringVar()
filename = filedialog.askdirectory()
folder_path.set(filename)
return filename
def import_csv_data(self):
csv_file_path = askopenfilename()
df = pd.read_csv(csv_file_path)
return df
def avgprice(self):
path1=self.browse_button()
path2=self.import_csv_data()
Я столкнулся с проблемой в avgprice()
, так как я не хочу, чтобы окно выбора файла появлялось снова, я просто хочу сохранить записи из того, что выбрал пользователь при нажатии всех кнопок. Есть ли способ использовать .get()
здесь?