Как уже упоминалось @martineau, вы должны сначала организовать свой код.Вот что вы можете сделать:
import tkinter as tk
class Graph:
def __init__(self, master):
#I init some variables
self.master = master
def input_function(self):
#I input the function
def input_dimensions(self):
#I input the dimensions
def draw_grid(self):
#I draw the x and y axis with graduation
#Should I put a mainloop() here ?
def draw_function(self):
#I draw the function
#Should I put a mainloop()here ?
def main(self):
self.input_function()
self.input_dimensions()
self.draw_grid()
self.draw_function()
#Should I put a mainloop() here ?
if __name__ == '__main__':
root = tk.Tk()
graph_class_object = Graph(master=root)
graph_class_object.main()
root.mainloop()
Так что же он делает?Он создает объект Tk
, который затем передается классу Graph
.Как видите, я передал объект Tk
как переменную master
.Таким образом, вы можете использовать self.master
в качестве родителя для любых новых виджетов tkinter, таких как Button
, Label
и т. Д. Например:
self.button = tk.Button(self.master, text="Button", height=1, width=20)
self.button.pack(side="top", padx=50, pady=5)
Код инициализации кнопки также должен быть в вашей функции init