Как использовать mainloop (от tinter) в python? - PullRequest
0 голосов
/ 29 ноября 2018

Привет. Я спрашивал себя, как мне использовать mainloop () из tkinter.Я пишу программу для рисования аффинной функции.Я сделал класс Graph и 2 функции ввода + 2 функции рисования.Моя программа организована следующим образом:

Class Graph:
    def __init__():
        #I init some variables
    def input_function():
        #I input the function
    def input_dimensions():
        #I input the dimensions
    def draw_grid():
        #I draw the x and y axis with graduation
        #Should I put a mainloop() here ?
    def draw_function():
        #I draw the function
        #Should I put a mainloop()here ?
    def main():
        Graph.input_function():
        Graph.input_dimensions():
        Graph.draw_grid():
        Graph.draw_function():
        #Should I put a mainloop() here ?

Graph.main():
#Should I put a mainloop() here ?

Я также хотел бы знать, есть ли способ обновить окно после основного цикла, чтобы я мог ввести другую функцию

1 Ответ

0 голосов
/ 29 ноября 2018

Как уже упоминалось @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

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