Hello together,
in the following code I want to start to create a tkinter window and open an Excel file, choose the sheet from a tkinter Dropdown and after pressing a Close button I want to Progress with the sheetname and the filename to create a dataframe and going for plots. However, I get enought code to create my tkinter GUI and choose the sheet, but I cant Transfer this sheetname out of the tkinter setup. I post a solution with class, but I am not sure, if ist necessary. Furthermore I am struggeling with the self command. I every case, the main Problem is usual the Output
TypeError: __init__() missing 1 required positional argument: 'master'
and I don't know how to handle this. How can I extract the tkvar right, is the self. command used right and do I have to make a class to work with tkinter as sheet selector. .... I am pretty new in Python and mainly used numpy and matplotlib at the beginning
in the following code I want to start to create a tkinter window and open an Excel file, choose the sheet from a tkinter Dropdown and after pressing a Close button I want to Progress with the sheetname and the filename to create a dataframe and going for plots. However, I get enought code to create my tkinter GUI and choose the sheet, but I cant Transfer this sheetname out of the tkinter setup. I post a solution with class, but I am not sure, if ist necessary. Furthermore I am struggeling with the self command. I every case, the main Problem is usual the Output
TypeError: __init__() missing 1 required positional argument: 'master'
and I don't know how to handle this. How can I extract the tkvar right, is the self. command used right and do I have to make a class to work with tkinter as sheet selector. .... I am pretty new in Python and mainly used numpy and matplotlib at the beginning
from tkinter.filedialog import askopenfilename import tkinter import pandas as pd import matplotlib.pyplot as plt class App: def __init__(self,master): self.master = master Filename = askopenfilename(filetypes = (("ExcelFiles","*.xlsm *.xlsx *.xls"),("all files","*.*")),title='Jetzt wähl endlich die Kagg-Datei') print(Filename) self.xl = pd.ExcelFile(Filename) print(self.xl.sheet_names) print(self.xl.sheet_names[0]) # Add a grid self.mainframe = tkinter.Frame(self.master) self.mainframe.grid(column=0,row=0, sticky=(tkinter.N,tkinter.W,tkinter.E,tkinter.S) ) self.mainframe.columnconfigure(0, weight = 2) self.mainframe.rowconfigure(0, weight = 2) self.mainframe.pack(pady = 100, padx = 100) self.button = tkinter.Button(self.mainframe, text="Auswahl", fg="red", command = master.destroy) # Create a Tkinter variable self.tkvar = tkinter.StringVar(self.master) #Convert xl_SheetNameList into Dictionary self.dictOfxl = dict.fromkeys(self.xl.sheet_names , 1) # Dictionary with options choices = self.dictOfxl self.tkvar.set(self.xl.sheet_names[0]) # set first xl_Sheet as default option self.popupMenu = tkinter.OptionMenu(self.mainframe, self.tkvar, *choices) tkinter.Label(self.mainframe, text="Choose a sheet").grid(row = 1, column = 1) self.popupMenu.grid(row = 2, column =1) self.button.grid(row = 3, column = 1) # on change dropdown value def change_dropdown(*args): print(self.tkvar.get() ) # link function to change dropdown self.tkvar.trace('w', change_dropdown) master = tkinter.Tk() master.title("Sheetauswahl") app = App(master) master.mainloop() print(App().tkvar.get()) sheet = App().tkvar.get() df = pd.read_excel(Filename, sheet_name=sheet) print(df)Best greetings