0
0 Комментариев

Есть мой ужасный код и есть цикл, результат которого должен постоянно обновляться в tkinter.Label. Опыта в программировании мало, не могу никак до конца разобраться в классах и областях видимости.

В общем, суть в том, что лейбл, созданный внутри create_widgets(), должен обновляться из результата цикла for _ in range(30). Функции внутри start_reading() используются только там, поэтому мне казалось приемлемой идеей поместить функции внутрь другой функции (метода?). Нашел вот этот вопрос, но он мне не особо помог, к сожалению.

Теперь я конкретно запутался и прошу помощи. Как исправить код, чтобы решить проблему?

import tkinter as tk
 
class Application(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.create_widgets()
 
    def create_widgets(self):
        ...  # Здесь должен быть лейбл
 
    def get_resolution(self, handle, client=True):
        ...
 
    def configuration(self):
        ...
 
    def start_reading(self, arg):
        a = ...
        b = ...
 
        def get_area(self, resolution, area, foo=None):
            ...
 
        spam = get_area(...)
        eggs = get_area(...)
 
        def get_hash(self, img):
            ...
 
        for _ in range(30):  # Лейбл должен изменятся каждый раз
            ...              # при изменении result, т.е. 30 раз
            result = ...
 
        del a  # После цикла должны быть удалены a и b.
        del b  # Только там не переменные на самом деле, а
               # .DeleteDC, .ReleaseDC и подобная ересь
 
if __name__ == '__main__':
    root = tk.Tk()
    app = Application(master=root)
    app.configuration()
    app.mainloop()


Добавить комментарий