Класс и методы Tkinter - PullRequest
0 голосов
/ 14 июля 2020

У меня есть коды tkinter, которые работают нормально, но я хочу поместить их в класс с методами для каждого процесса. Я новичок в Python, как я могу это сделать?

Вам не нужно делать все, просто класс и два метода подойдут, и я могу научиться копировать остальные.

root= tk.Tk()

canvas1 = tk.Canvas(root, width = 400, height = 400,  relief = 'raised')
canvas1.pack()

label1 = tk.Label(root, text='EDA')
label1.config(font=('helvetica', 12))
canvas1.create_window(200, 25, window=label1)

label2 = tk.Label(root, text='Number of Clusters:')
label2.config(font=('helvetica', 8))
canvas1.create_window(200, 120, window=label2)

entry1 = tk.Entry (root)
canvas1.create_window(200, 140, window=entry1)

browseButtonExcel = tk.Button(text=" Import Excel File (CSV) ", command=App.getExcel,
                              bg='green', fg='white', font=('helvetica', 10, 'bold'))
canvas1.create_window(200, 70, window=browseButtonExcel)

processButton = tk.Button(text=' k-Means Clustering', command=cluster, bg='brown',
                          fg='white', font=('helvetica', 10, 'bold'))
canvas1.create_window(200, 170, window=processButton)

root.mainloop()

1 Ответ

0 голосов
/ 15 июля 2020

Ниже приведен один из способов получить то, что вы хотите, на основе кода вашего вопроса. Обратите внимание на то, что я изменил названия некоторых вещей, чтобы лучше соответствовать рекомендациям 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()

Скриншот его запущенного:

снимок экрана, показывающий, что отображается

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...