Ниже приведен один из способов получить то, что вы хотите, на основе кода вашего вопроса. Обратите внимание на то, что я изменил названия некоторых вещей, чтобы лучше соответствовать рекомендациям PEP 8 - Style Guide для Python Code - и я предлагаю вам тоже начать делать это.
import tkinter as tk
class MyGUI(tk.Frame):
def __init__(self, parent=None, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.pack()
self.create_widgets()
def create_widgets(self):
canvas1 = tk.Canvas(self, width=400, height=400, relief='raised')
canvas1.pack()
label1 = tk.Label(self, text='EDA')
label1.config(font=('helvetica', 12))
canvas1.create_window(200, 25, window=label1)
label2 = tk.Label(self, text='Number of Clusters:')
label2.config(font=('helvetica', 8))
canvas1.create_window(200, 120, window=label2)
entry1 = tk.Entry(self)
canvas1.create_window(200, 140, window=entry1)
browse_excels_btn = tk.Button(text="Import Excel File (CSV) ",
bg='green', fg='white', font=('helvetica', 10, 'bold'),
command=self.get_excel)
canvas1.create_window(200, 70, window=browse_excels_btn)
clustering_btn = tk.Button(text='k-Means Clustering',
bg='brown', fg='white', font=('helvetica', 10, 'bold'),
command=self.cluster)
canvas1.create_window(200, 170, window=clustering_btn)
def get_excel(self):
# App.getExcel()?
pass
def cluster(self):
pass
if __name__ == "__main__":
root = tk.Tk()
root.title('Example')
root.wm_geometry("400x400")
main = MyGUI(root)
main.pack(side="top", fill="both", expand=True)
root.mainloop()
Скриншот его запущенного:
снимок экрана, показывающий, что отображается